我想实例化一个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