У меня есть этот код, который реализован в классе под названием 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
внутри метода, он каждый раз возвращается в исходное состояние и возвращает только последний файл. Но с настройкой у меня сейчас, если я вызываю метод более одного раза, список содержит дубликаты каждого файла.
Любой способ использования переменной метода или сброс переменной класса после ее вызова.
Да, это то, о чем я думал сразу после публикации, я просто сделал это, и он отлично работает, поэтому я считаю, что это хороший ответ, однако вам нужно передать classFileList и как параметр, когда он вызывается в цикле for. пока вы делаете это редактирование, я буду принимать это как ответ – Totalllyrandomguy
@Totalllyrandomguy Done, спасибо, что указали это. На самом деле у меня не было java на этом компьютере, поэтому написал код в блокноте. И скопируйте эту часть с вашего вопроса. :-) – Panther
Вам также нужно передать файл - listFiles() имеет 2 параметра! Также, если вы передаете classFileList в качестве параметра, метод должен, вероятно, иметь недействительный возвращаемый тип. –