Я пытаюсь построить объект Java File на основе имени файла, предоставленного пользователем (может быть абсолютным или относительным) и базовой директории, зависящей от окружения. В java doc для java.io.File(File parent, String child) сказано следующее:
Если дочерняя строка пути является абсолютной, то она преобразуется в относительное имя пути в зависимости от системы.
Это заставило меня подумать, что если бы у меня был следующий код:
public class TestClass {
public static void main(String[] args) throws IOException {
File file = new File(new File("C:/Temp"),"C:/Temp/file.txt");
System.out.println(file.getAbsolutePath());
}
}
вывод был бы
C:\Temp\file.txt
и тогда я был бы в деле, потому что на самом деле уже не имело бы значения, если бы пользователь указал абсолютный или относительный путь. Но на самом деле выводится
C:\Temp\C:\Temp\file.txt
Что означает, что я должен вычислить точный относительный путь (или, по крайней мере, протестировать различные опции, чтобы посмотреть, существует ли файл). Неужели я неправильно понял JavaDoc?