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());
} }
发布于 2013-07-08 02:44:40
移动此行
PictureFile picturefile = new PictureFile();在循环中,否则您只更新一个元素。
https://stackoverflow.com/questions/17515131
复制相似问题