2017-09-13 37 views
0

我正在嘗試編寫一個java程序,它將採用文件的確切路徑或名稱,或者採用某種形式的模式,如glob。程序的內部部分將會重複用於每個由filepath說明符找到的文件。如何在以前的目錄上執行glob搜索

下面是一些我希望能夠進入路徑的一個例子:

example.txt 

進程在本地目錄「example.txt中」。

*.txt 

處理本地目錄的所有文本文件。

../* 

處理上一個目錄中的所有文本文件。

這是最後一個,我遇到了很多麻煩。我可以通過使用PathMatcher獲得前兩個工作,但我無法仿效../而沒有掃描程序運行的整個驅動器。

我有一噸麻煩得到模式匹配工作。我只是希望它以與grep類似的方式工作,我可以使用它來指定確切的文件或文件模式。

是否有任何這樣做的例子?

+0

爲什麼你不只是chdir到路徑中出現的每個'..'的前一個目錄? –

+0

我根本沒有看到這一點。 shell已經完成了你想要程序教授的東西 - 只需在'main'方法中遍歷'args'數組。 – daniu

+0

@daniu在linux和windows上的工作方式完全相同嗎? – Andy

回答

0

當然,我會採取的觀點:D另外,有人可能谷歌這一點,並會有一個更容易的時間使用「接受」的答案。

shell會爲您做這件事,並且很可能不像您嘗試手動執行的那樣容易出錯。

private static void main(String[] files) { 
    for (String file : files) { 
     process(file); 
    } 
} 

這將適用於我所知道的幾乎所有的系統,你會遇到過。