2013-05-03 41 views
0

代碼: - 列出所有文件檢查文件是否是子目錄並打印它。 在if子句中,我必須使用createNewFile()嵌入代碼,以便在所有子目錄中創建一個新文件。我該怎麼做?如果在子目錄中標識瞭如何創建一個空文件,則遍歷該目錄。

File directory = new File(directoryName);       
    //get all the files from a directory    
    File[] fList = directory.listFiles();    
    for (File file : fList){      
     if (file.isFile()){       
      System.out.println("Files: " + file.getName());      
     } else if (file.isDirectory()){  
      file.createNewFile(); 
      System.out.println("Subdirectory :" +file.getName()); 

     }    
    }   
} 

回答

2

你需要給一個新名稱要創建新的文件:

else if (file.isDirectory()){ 
      File nf = new File(file.getAbsolutePath()+File.separator+"newFile")  
      nf.createNewFile(); 
      System.out.println("Subdirectory :" +file.getName()); 

     } 

這樣的事情。

+2

'File nf = File(file.getAbsolutePath()+「/」+「newFile」)'應該是'File nf = File(file.getAbsolutePath()+ File.separator +「newFile」)' – prasanth 2013-05-03 05:13:51

+0

@HArshal Pandya:Thanks很多 :)!!有效。 – ranjani 2013-05-03 05:15:21

+1

@prasanth:你說得對。我做了改變。 – 2013-05-03 05:16:27

2

什麼你的代碼是說的是:「如果我遍歷當前文件是一個目錄,然後創建一個從這個目錄中的新文件」。所以你的迭代file是你想要創建的file,如果作品我很驚訝。相反,創建一個new File作爲父目錄。

喜歡的東西:

new File(file, "somefilename"); 
+0

NilsH:雅這就是爲什麼它沒有工作!感謝您的解釋! – ranjani 2013-05-03 05:22:59