我有一個名爲FileUtils
的類中實現的代碼,它聽起來像。 它所做的只是通過一個文件並將該文件夾下的每個文件夾放在ArrayList
中,所以它就像在任何將返回內容的文件上調用.listFiles()
方法一樣。如何在調用自己的方法中使用ArrayList
private static ArrayList<File> classFileList = new ArrayList<File>();
public static ArrayList<File> listFiles(File dir) {
if (!dir.isDirectory() || !dir.exists())
return null;
for (File file : dir.listFiles()) {
classFileList.add(file);
listFiles(file);
}
return classFileList;
}
上面的代碼工作正常,但它需要類變量ArrayList
工作。
如果我在方法內部創建了ArrayList
,那麼每次調用它時它都會被重置,並且只返回最後一個文件。但是隨着我現在的設置,如果我多次調用該方法,那麼列表中包含每個文件的重複項。
要麼使用方法變量,要麼在調用它之後重置類變量。
是的,這是我發佈後立即想到的,我只是做了它,它工作得很好,所以我認爲這是一個很好的答案,但是當您在for循環中調用時,需要傳遞classFileList並將其作爲參數。只要你做了編輯,我會接受這個答案 – Totalllyrandomguy 2014-12-13 19:38:19
@Tallalllyrandomguy完成,謝謝指出。其實我在這臺電腦上沒有java,所以在代碼中寫了代碼。複製粘貼你的問題的那一部分。 :-) – Panther 2014-12-13 19:43:21
您還需要傳遞文件 - listFiles()有2個參數!另外,如果您將classFileList作爲參數傳遞,則該方法可能應該具有void返回類型。 – 2014-12-13 19:47:20