2015-11-17 43 views
0

我有這個var聲明。通過內在的匿名。等級:爲什麼從File類的list()返回共享相同父文件夾的文件夾的列表

String datFiles[]=folder.list(new FilenameFilter(){ 
    public boolean accept(File folder, String fileName) { 
     return fileName.endsWith(".xyz"); 
    } 
}); 

我認爲沒有問題。但是對於同一父文件夾中的文件夾,它將返回列表,無論沒有.xyz文件。在另一級別的文件夾中,如果沒有匹配,它將返回null。

我想,也許在另一臺計算機可能存在的一些權限問題。

非常感謝您的提示。

+0

java.io.File已過時。您應該使用'試試(DirectoryStream dir = Files.newDirectoryStream(folder.toPath(),「* .xyz」))'。請參閱[這裏](http://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#newDirectoryStream-java.nio.file.Path-java.lang.String-)瞭解詳情。 – VGR

回答

2

返回的數組是null如果folder不表示一個目錄。
否則將返回一個非null數組,其中包含與過濾器匹配的所有文件。

+0

你回答幸運地回答了我的另一個問題(http://stackoverflow.com/questions/33762787/if-i-compile-java-app-at-another-location-it-can-not-read-from-any-夾)。非常感謝你。 –

0

我發現這與某種程度上與相對和絕對路徑有關。如果有人好奇,我可以告訴更多細節。