【发布时间】:2014-09-20 12:21:50
【问题描述】:
我的程序必须监视匹配掩码的文件。文件夹名称和掩码通过命令行参数传递。但是掩码在我可以使用之前被第一个匹配替换了!
双引号无效,其他符号也一样。我尝试使用\ 或' 来保护输入。但是,这个符号将被添加到我不想要的 args 中。知道如何解决它吗?
public static void main(String[] args) throws IOException {
File dir = new File(args[0]);
String mask = args[1];
System.out.println(dir.getAbsolutePath());
System.out.println(mask);
String regex = args[2];
System.out.println(regex);
}
args[2] 中的正则表达式也替换为文件夹中的某些文件。
Input: "E:\Programming\Java\Task7" *.??? ...
Ouput: E:\Programming\Java\Task7 .git Task7.iml
Input: "E:\Programming\Java\Task7" *.????* [a-zA-Z]
Output: E:\Programming\Java\Task7 .idea [a-zA-Z]
Input: "E:\Programming\Java\Task7" '.???' ...
Output: E:\Programming\Java\Task7 '.???' ...
Input: "E:\Programming\Java\Task7" \\'.???'\\ ...
Output: E:\Programming\Java\Task7 \'.???'\ ...
我知道使用引号或反斜杠并不是什么坏主意,但我认为还有更好的方法。
【问题讨论】:
标签: java shell cmd wildcard-expansion