2010-05-26 99 views
1

我有一个字符串与我的文件的路径,我想instancie与此字符串new FormFile。这是可能的 ..?如何实例化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

回答

0

您的代码失败,因为您创建了一个新的File对象,但你会尝试将它投射到FormFile。 A FormFile是一个接口,所以不能直接实例化。它看起来像你需要一个DiskFile,它会是new DiskFile(path)

1

FormFile是一个接口(不能被实例化)。看看这个接口的实现,如CommonsMultipartRequestHandler.CommonsFormFile。这个有一个构造函数,可以创建代表文件的FileItemDiskFileItem)。

+0

我不知道该怎么做 – Mercer 2010-05-26 13:18:09

+0

阅读这些类的javaDoc - 这一切都解释了。如果你没有它:谷歌'docjar FormFile'来访问一个在线javaDoc。 – 2010-05-26 13:23:47

+0

当我这样做 DiskFile diskFile = new DiskFile(files [i] .getPath()); 我有我的文件的路径,但我没有我的文件的内容 – Mercer 2010-05-26 13:47:49