我想實例化一個File變量,但只知道文件名的一部分。即我知道文件名以「pass_231_」開頭,但不知道其餘部分。這甚至有可能嗎?如何訪問僅包含部分文件名的文件?
1
A
回答
0
您可以列出文件夾中的所有文件,然後在知道完整名稱後打開文件。
查看File.list()方法。
1
嘗試在包含該文件的目錄上使用File.listFiles(filter)
方法。更多信息here。
0
您必須對文件夾執行過濾器,但是如果過濾器返回多個文件,則必須決定打開哪個文件。
3
如果你知道它在哪個目錄,是的。您可以使用FileFilter
:
final String prefix = "pass_231_"
File dir = ... ;
File[] candidates = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().startsWith(prefix);
}
});
// candidates will contain all files starting with "pass_231_"
如果你需要搜索遞歸(包括子文件夾),你可以這樣做:
String prefix = "pass_231_";
File dir = ... ;
List<File> candidates = new ArrayList<File>();
searchRecursively(dir, prefix, candidates);
// candidates will contain all files starting with "pass_231_"
然後searchRecursively
看起來是這樣的:
public static void searchRecursively(File dir, final String prefix, List<File> candidates) {
File[] matches = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.getName().startsWith(prefix);
}
});
candidates.addAll(Arrays.asList(matches));
File[] subdirs = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return pathname.isDirectory();
}
});
for (File subdir : subdirs) {
searchRecursively(subdir, prefix, candidates);
}
}
+0
這正是我所需要的。謝謝! –
相關問題
- 1. 如何包含文件的一部分?
- 2. PHP包含部分文件名
- 3. 如何只包含彙編包含文件的部分
- 4. 從包含的文件中,如何獲取包含文件的文件名?
- 5. 如何在Symbian部署中包含文件以便可訪問?
- 6. 如何僅打印包含特定字符串的文件的文件名部分?
- 7. bash:僅顯示文件名中包含日期的文件
- 8. 限制對包含文件的訪問
- 9. 如何根據包含它的文件包含/排除包含的PHP文件的一部分?
- 10. 包含php文件的一部分?
- 11. 如何通過僅包含PEAR.php文件來包含PEAR包?
- 12. 如何過濾文件名中含有公共部分幷包含一些文本的文件列表?
- 13. Hadoop分佈式緩存可以包含文件夾還是僅包含文件?
- 14. 包含許多文件或僅包含一個文件
- 15. 如何爲NuGet包的配置部分包含XSD文件?
- 16. 訪問一個網站home文件不包含文件名和擴展名
- 17. 如何防止requirejs包含所有源文件並僅包含模塊文件?
- 18. 從僅包含一個文件的文件夾讀取文件名
- 19. 禁止訪問包含文件
- 20. 在SAS中搜索包含部分文件名的文件的存在
- 21. SSI - 只包含部分文件?
- 22. 如何僅獲取部分WebClient文件?
- 23. 如何僅提交外部文件中列出的文件名
- 24. 訪問HTML文件中包含的SVG文件
- 25. 如何包含外部ASP文件?
- 26. 頭下載文件,其中包含它的文件名分號
- 27. 如何直接訪問g ++文本文件的某個部分?
- 28. 如何在HAML中渲染僅包含條件塊的部分
- 29. 如何訪問OSGi包內的文件?
- 30. Django:包含外部包含文件
使用的文件.listfiles,並比較所有文件名是否以'pass_231_'開頭,並標識要使用的文件。 – Amareswar
最糟糕的情況是您掃描整個目錄結構,查找具有匹配名稱的文件。所以是的,這是可能的,但它有助於知道它所在的目錄。 – NullUserException