На ваш первый вопрос: File("")
является допустимым путем и эквивалентно System.getProperty("user.dir")
.Это не допустимый файл или каталог в этом пути (хотя он все еще имеет путь. Это совершенно относительный путь, поэтому при вызове getPath()
он вернет пустую строку, поскольку файл с именем "" не найден.
Ваш второй вопрос "." - это каталог, он существует, и у него также есть относительный путь "", поэтому при вызове getPath вы увидите путь "" + имя каталога "."