首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >for-each循环错误

for-each循环错误
EN

Stack Overflow用户
提问于 2013-07-08 02:42:36
回答 1查看 173关注 0票数 0

Java For-each-loop:我正在尝试映射从下面的操作检索到的数据,并将其映射到一个对象模型。不幸的是,它只输出检索对象中的最后一个对象。请大家检查一下代码中可能存在的问题。

代码语言:javascript
复制
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());

    } 

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-08 02:44:40

移动此行

代码语言:javascript
复制
PictureFile picturefile = new PictureFile();

在循环中,否则您只更新一个元素。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17515131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档