2017-09-13 46 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); 
    } 
} 

这将适用于我所知道的几乎所有的系统,你会遇到过。