Вот что у меня есть:
private static boolean checkLocation(String toCheck) {
// If null, we necessarily miss the directory section
if ( toCheck == null ) {
System.out.println("Missing directory section");
return false;
}
String retrName = new File(toCheck).toURI().toString();
// Are we dealing with a directory?
if ( retrName.charAt(retrName.length()-1) == '/') {
System.out.println("Missing file name");
return false;
}
return true;
}
Это говорит мне, есть ли у меня правильная структура каталогов и указываю ли я на каталог, а не на файл. Мне не нужен доступ к I / O.
Я заметил, что если я использую метод File.createNewFile()
в местоположении, явно указывающем на каталог (который еще не существует), Java создает файл без расширения, что совершенно неправильно. Либо он должен создать каталог, либо он должен выдать какую-то ошибку.
Кроме того, конструкторы File, как правило, добавляют текущий каталог, если в аргументе ничего не указано. Это не задокументировано, но никакого реального вреда в моем случае нет.
Если у кого-то есть лучшее решение, я его одобрю.
EDIT
Я наконец объединил вышеупомянутое с вводом от RealHowTo.