我需要从应用程序的另一部分下载的目录中获取该文件,但该文件的名称是动态创建的。我的意思是它总是Query_
然后是一些数字,fe。 Query_21212121212
,Query_22412221
。我需要获取绝对文件路径,例如C:/ dir / Query_ *。怎么做?
答案 0 :(得分:1)
如果您知道文件所在的路径,则可以创建DirectoryStream并获取其中的所有文件。
请参阅https://docs.oracle.com/javase/tutorial/essential/io/dirs.html#glob
示例(来自上面的链接):
Path dir = ...;
try (DirectoryStream<Path> stream =
Files.newDirectoryStream(dir, "*.{java,class,jar}")) { //<--- change the glob to
//fit your name pattern.
for (Path entry: stream) {
System.out.println(entry.getFileName());
}
} catch (IOException x) {
// IOException can never be thrown by the iteration.
// In this snippet, it can // only be thrown by newDirectoryStream.
System.err.println(x);
}
关于globs:https://docs.oracle.com/javase/tutorial/essential/io/fileOps.html#glob
所以在你的情况下,它可能类似于"Query_*"
。您是否使用特殊扩展或根本没有扩展?如果它是.txt那么glob应该像"Query_[0-9]+.txt"
。