2014-01-16 77 views
0

說我有一個具有路徑刪除目錄的java

C:\Users\Desktop\Application\('folder_names')

我怎麼會在這個目錄中刪除某些文件夾,並保持那些我有一個目錄內的文件夾的名稱列表中的某些文件夾存儲在一個列表中。

即。我有一個字符串列表:

String[] deleteList = "folder 1, folder 2, folder 3";

,並在目錄:

C:\Users\Desktop\Application\我只是想刪除folder 2

這個使用字符串列表,而不是顯式調用的是如何可能我做的夾?

到目前爲止,我有:

更新:

File[] deleteList = directory.listFiles(fileFilter); 
     for (File file : deleteList) { 
      if (file.isDirectory()) { 
       System.out.println(file.getPath()); 
       if (file.getPath() 
         .equals("C:\\Users\\Desktop\\Application\\folder 2")) { 
        System.out.println("got folder"); 
              FileUtils.deleteDirectory(file); 
       } else { 
        System.out.println("Didn't get it."); 

       } 
      } 
     } 

輸出

C:\Users\U201165\Desktop\Newfolder\Newfolder(2) 
got folder 
C:\Users\U201165\Desktop\Newfolder\Newfolder(3) 
Didn't get it. 
C:\Users\U201165\Desktop\Newfolder\Newfolder(4) 
Didn't get it. 
C:\Users\U201165\Desktop\Newfolder\Newfolder(5) 
Didn't get it. 

回答

1

您可能從getPath()獲得相對路徑。爲了確保您從File對象,使用獲得的絕對路徑:

if (file.getAbsolutePath().equals("C:\\Users\\Desktop\\Application\\folder2")) ... 

,而不是getPath()

0

你的System.out是顯示文件對象,但在你的equals方法您正在使用的文件。的getPath()。把file.getPath()放到你的system.out文件中,這樣你就可以看到你實際上在比較什麼。 File對象有一個像getExplicitPath()方法的方法。您可能需要使用該代替路徑。在某些情況下,我認爲path只顯示文件名,或者相對路徑不是預期的路徑。