我已經搜查解決通配符文件規範,但似乎無法弄清楚如何編寫Java代碼,作爲輸入包含通配符(星號)的字符串,並用通配符輸出字符串解決。如何使用Java 7
我有一種特殊的情況,我知道有1或0匹配filespecs,所以我想有返回的字符串或者是一個有效的文件規範,或空。
我已經得到了一些示例代碼中使用Files.walkFileTree()工作,但它不這樣做正是我想要的。我想獲得resollved文件名後面的字符串,我可以在後面的代碼使用...
我只是想通過一些代碼的字符串的文件名,其中包括星號
e.g.: input this String: filename*.tr
,並得到一個String與星號解析到第一個匹配的文件名(或空):
e.g.: get back this String: filename_201402041230.tr
這些文件駐留包含幾千個文件,所以遍歷目錄中的所有文件,並解析名稱自己是不是一個目錄吸引人的選擇
任何幫助或指針將不勝感激。
爲爆發而道歉...感謝提示...以下是我之前嘗試的: 但是,正如我所說的,這不是我想要的,但它距離我的研究中儘可能近。
Path startDir = Paths.get("C:\\huge_dir");
String pattern = "filename*.tr";
FileSystem fs = FileSystems.getDefault();
final PathMatcher matcher = fs.getPathMatcher("glob:" + pattern);
FileVisitor<Path> matcherVisitor = new SimpleFileVisitor<Path>()
{
@Override public FileVisitResult visitFile(Path file, BasicFileAttributes attribs)
{
Path name = file.getFileName();
if (matcher.matches(name))
System.out.println(file);
return FileVisitResult.TERMINATE;
}
};
try
{
Files.walkFileTree(startDir, matcherVisitor);
}
catch (Exception e){System.out.println(e);}
添加示例代碼,以便人們可以看到你已經嘗試什麼,你要去哪裏錯了。我並沒有低估這一點,但我認爲別人可能會這樣做,因爲這聽起來像是你在這裏鍵入你的家庭作業。 – RacerNerd
嗯,我不想證明我當前的代碼,因爲它是一種白費力氣的,因爲它沒有做我想要的東西,它只是的println-ING相匹配的所有文件,而不是返回一個字符串,我可以在以後使用我的邏輯。 – user3380152
然而,如果它有用的話,這裏是: – user3380152