2010-05-26 39 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