如何实例化FormFile对象?

时间:2010-05-26 12:47:09

标签: java file

我有一个带有我的文件路径的字符串,我想用这个字符串实现new FormFile。这可能......?

我的代码:

    public ArrayList<FormFile> getFilesFromFolder(String path) {
  File file = new File(path);
  ArrayList<FormFile> vFiles = new ArrayList<FormFile>();

  if (file.exists()) {

   File[] files = file.listFiles();
   int i;

   for (i = 0; i < files.length; i++) {
    if (files[i].isFile()) {
     vFiles.add((FormFile) files[i]);
    }
   }
  } else {
   vFiles = null;
  }
  return vFiles;
 }

但我在这行vFiles.add((FormFile) files[i]);

中有错误
  

java.lang.ClassCastException:   java.io.File无法强制转换为   org.apache.struts.upload.FormFile

2 个答案:

答案 0 :(得分:1)

FormFile是一个接口(无法实例化)。查看此接口的实现,如CommonsMultipartRequestHandler.CommonsFormFile。这个有一个构造函数,可以为表示文件的FileItemDiskFileItem)创建。

答案 1 :(得分:0)

您的代码失败是因为您创建了一个新的File对象,但是您尝试将其转换为FormFileFormFile是一个接口,因此无法直接实例化。看起来您需要DiskFile,它将是new DiskFile(path)