【发布时间】:2017-09-13 13:17:46
【问题描述】:
我正在尝试编写一个 java 程序,该程序将采用文件的确切路径或名称,或者采用某种形式的模式,如 glob。程序的内部结构只会针对文件路径说明符找到的每个文件重复。
这是我希望能够进入的一些路径的示例:
example.txt
处理本地目录中的“example.txt”。
*.txt
处理本地目录的所有文本文件。
../*
处理上一个目录中的所有文本文件。
这是我遇到很多麻烦的最后一个。我可以通过使用 PathMatcher 来让前两个工作,但如果不扫描程序正在运行的整个驱动器,我就无法让它模拟 ../。
我在让模式匹配工作时遇到了很多麻烦。我只是希望它以与 grep 类似的方式工作,我可以使用它来指定确切的文件或文件模式。
有没有这样做的例子?
【问题讨论】:
-
为什么不为路径中出现的每个 '..' 直接 chdir 到上一个目录?
-
我完全不明白这一点。 shell 已经完美地完成了您正在尝试使用程序教的内容 - 只需遍历您的
main-方法中的args数组。 -
@daniu 它在 linux 和 windows 上的工作方式完全一样吗?
-
@Andy 主要是......但差异几乎正是你应该将它留给 shell 并只期望文件列表的原因 - 你将在 Windows 和 Linux 上获得。
-
@daniu 我已经采用了该解决方案,对我来说效果很好。您不必这样做,但是如果您想将其写为答案,我会将其标记为已回答(并且您可以获得积分)。