2014-11-24 130 views
0
public void Process(File aFile) throws IOException, ParseException { 

    if(aFile.isFile()) 
    { 
    System.out.println("File name:"+aFile.getAbsolutePath()); 
    } 
    else if (aFile.isDirectory()) { 

    File[] listOfFiles = aFile.listFiles((FileFilter) HiddenFileFilter.HIDDEN); 
    if(listOfFiles!=null) { 
      for (int i = 0; i < listOfFiles.length; i++) 
       Process(listOfFiles[i]); 
    } 

    File[] listOfFiles1 = aFile.listFiles((FileFilter) HiddenFileFilter.VISIBLE); 
    if(listOfFiles1!=null) { 
      for (int i = 0; i < listOfFiles1.length; i++) 
       Process(listOfFiles1[i]); 
    } 
    } 
} 

呼叫在主要功能如下如何使用java檢索隱藏的文件夾?

String nam = "E:\\"; 
File aFile = new File(nam); 
Process(aFile); 

我使用上面的代碼檢索所有文件的細節這是目前在E:\。它不檢索隱藏文件夾文件的詳細信息。任何人都可以幫忙嗎?

+0

當你說*它不會檢索隱藏文件夾中文件的詳細信息*它意味着'listOfFiles'爲空或'Process'方法不處理任何事情? – ortis 2014-11-24 10:31:15

回答

0

只需使用aFile.listFiles()而不需要任何FileFilter然後根據isHidden()的檢查將每個隱藏文件夾的路徑放入列表中。

示例代碼:

public static void process(File aFile){ 
    if (aFile.isFile()) { 
     System.out.println("File name:" + aFile.getAbsolutePath()); 
    } else if (aFile.isDirectory()) { 
     if(aFile.isHidden()){ 
      System.out.println(aFile.getAbsolutePath()+"folder is hidden"); 
     } 
     File[] listOfFiles = aFile.listFiles(); 
     if (listOfFiles != null) { 
      for (int i = 0; i < listOfFiles.length; i++) 
       process(listOfFiles[i]); 
     } 
    } 
} 
+0

文件夾訪問被拒絕。如何訪問這些文件夾 – 2014-11-24 10:43:11

+0

是外部驅動器?它對我來說工作得很好。嘗試使用'aFile.canRead()' – Braj 2014-11-24 10:46:25

+0

它檢索所有文件夾,但不檢索受限制文件夾的文件詳細信息 – 2014-11-24 10:55:30

相關問題