Java For-each-loop: Я пытаюсь отобразить данные, полученные из приведенной ниже операции, и сопоставить их с объектной моделью. К сожалению, он выводит только последний объект из извлеченного объекта. Пожалуйста, кто-нибудь может проверить, что может быть проблемой с кодом.ошибка для каждого цикла
public void listAllFilesInTheDirectoryAndSubdirectories(String aDirectoryName){
AppDirectory appdirectory = new AppDirectory();
PictureFile picturefile = new PictureFile();
ArrayList<AppDirectory> subdirectories = new ArrayList<AppDirectory>();
ArrayList<PictureFile> picturefiles = new ArrayList<PictureFile>();
appdirectory.setName(aDirectoryName);
appdirectory.setPictureFiles(picturefiles);
appdirectory.setSubDirectories(subdirectories);
File directory = new File(aDirectoryName);
//get all the files from a directory
File[] allFiles = directory.listFiles();
//Using a for-each loop to loop through each file in the list of files returned
for (File file : allFiles){
//Check if the file is-a-file, then print it out
if (file.isFile()){
String filePath = file.getAbsolutePath();
String fileName = file.getName();
String folderName = file.getParentFile().getName();
if(folderName.equals(aDirectoryName)){
System.out.println("Directory Name is : "+appdirectory.getName());
System.out.println(folderName);
System.out.println(fileName);
picturefile.setName(fileName);
picturefile.setType("jpeg");
picturefile.setLength(2354);
Dimension dimension = new Dimension(656, 413);
picturefile.setSize(dimension);
picturefile.setLength(50023);
appdirectory.addPictureFile(picturefile);
}else{
//appdirectory.setName(folderName);
//picturefile.setName(filePath);
//appdirectory.addPictureFile(picturefile);
//subdirectories.add(appdirectory);
}
}else if(file.isDirectory()){
listAllFilesInTheDirectoryAndSubdirectories(file.getAbsolutePath());
}
}
// System.out.println(picturefiles.size());
for(int x = 0; x<appdirectory.getPictureFiles().size(); x++){
System.out.println(appdirectory.getPictureFiles().get(x).getName());
}
}
Вы пытались отладить с помощью IDE? –
Кроме того, здесь приведены методы, используемые для добавления pictureFile в ArrayList файлов изображений. public ArrayList getPictureFiles() { return this.pictureFiles; } public void addPictureFile (PictureFile pictureFile) { this.getPictureFiles(). Add (pictureFile); } –
@Wand Marker: Да, код в порядке. Ошибок нет. ... должно быть связано с добавлением объекта изображения в ArrayList файлов изображений. Он берет только последний файл изображения, который был восстановлен. –