Программа должна следить за файлами, которые соответствуют маске. Имя папки и маска передаются через аргументы командной строки. Но маска заменяется первым матчем даже до того, как я смогу его использовать! Двойные кавычки не имеют эффекта и другие символы, например, я попробовал usind \ или ', чтобы защитить вход, но тогда этот символ будет добавлен в args, чего я не хочу. Любая идея, как это исправить?Аргументы командной строки Java, прекращение разворачивания символов подстановки
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);
}
Regular expression from args[2] also replaced with some file from folder.
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, который расширяет подстановочные знаки, и я написал, что защита ввода осуществляется с помощью двойных кавычек или если подходящие символы типа \ или 'не работают. Кстати, я умуг Windows cmd. –