Я пытаюсь сделать некоторую обработку на том, вводит ли пользователь (1) имя файла, или (2) имя каталога в командную строку. Что-либо еще должно бросить ошибку. Начиная с самого простого случая, я записал это:
import java.io.*;
import java.util.*;
public class RemoveDuplicates {
public static void main(String[] args) {
if (args.length != 1) {
System.out.println("Program accepts one command-line argument. Exiting!");
System.exit(1);
}
File f = new File(args[0]);
if (f.isDirectory()) {
System.out.println("is directory");
}
else if (f.isFile()) {
System.out.println("is file");
}
else {
System.out.println("Shouldn't happen");
}
}
}
в командной строке я ввожу: java RemoveDuplicates example.txt и я получаем reuslts, "Не должен происходить". Я также попробовал "example.txt" java RemoveDuplicates, и это не работает также. Таким образом, я задавался вопросом, является ли мой код неверным, или как я передаю его в командную строку, является неправильным при начинающих.
Во-вторых, как Вы передаете в имени каталога? Как то, если Ваш каталог был myDirectory, это то же самое: java RemoveDuplicates myDirectory
В-третьих, почему, если я поместил свой Файл f = новый Файл (args [0]) в блок попытки и имею блок выгоды, я получаю ошибку компиляции о том, что находится в моем блоке попытки, никогда не выдает исключение. Я думал, что Файл выдал исключение?Заранее спасибо!