2013-07-26 3 views
0

На макинтош, OSX, когда я делаю:Файл не существует работает, когда указанный путь

File file = new File("ah/myfile.text"); 

я могу сделать:

file.getParent() 

я получаю

ah 

но если I

file.exists() 

Я получаю ложное возвращение.

Почему?

+3

Попробуйте напечатать канонический путь к файлу. Бьюсь об заклад, это не указывает на то, где вы думали. –

+0

Печать пути. Кроме того, существует родительский каталог, но сам файл этого не делает. Значение папки «ах» существует, но «myfile.text» не работает (по крайней мере, в каталоге, на который указывает класс File). –

+0

«Файл» представляет собой путь к строкам, а не файл фактической файловой системы. API NIO от Java 7 более понятен с новым классом «Путь». Подумайте об использовании этого –

ответ

2

getParent() просто анализирует данный путь и удаляет последний раздел aftwr последней косой черты. Однако exists() выполняет реальную проверку. Я считаю, что в этом месте файл yor действительно отсутствует. Чтобы проверить текущий каталог, создайте новый файл ("."). GetAbsolutePath() и соответствующим образом измените свой путь.

0
File file = new File("ah/myfile.text"); 

System.out.println(file.getParent()); 
System.out.println(file.exists()); 

Выход:

ah 
false 

я получаю тот же результат. Get parent должен анализировать путь как строку, даже если файл и/или каталог не существуют.

+0

Пожалуйста, используйте форматирование кода для кода, ввода/вывода и структурированных документов, таких как HTML или XML. Для этого выберите образец и нажмите кнопку '{}' над формой отправки сообщений/редактирования. –

+0

Andrew-Will do! Спасибо за помощь. – JBuenoJr

0

A File не нужно, должны быть. Это может быть ссылка на файл, уже находящийся в системе, или файл, который может потенциально находиться в системе.

Вы говорите, что у вас есть путь к (потенциальному) файлу по адресу ah/myfile.text, но может быть, что ни файл, ни родительский каталог не существуют. Его родитель все еще ah/.

Вы также можете проверить, если родитель существует, делая file.getParentFile().exists();

Смежные вопросы