Pare de expandir símbolos curinga nos argumentos da linha de comandos para Java
Meu programa precisa observar os arquivos que correspondem a uma máscara. O nome da pasta e a máscara são passados pelos argumentos da linha de comando. Mas a máscara é substituída pela primeira partida antes que eu possa usá-la!
As aspas duplas não têm efeito e outros símbolos também. Eu tentei usar\
ou'
para proteger a entrada. No entanto, esse símbolo será adicionado aos argumentos, o que eu não quero. Alguma idéia de como consertar isso?
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);
}
Expressão regular deargs[2]
também substituído por algum arquivo da pasta
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 \'.???'\ ...
Entendo que usar aspas ou barra invertida não é uma má ideia, mas acho que existe uma maneira melhor.