2015-05-25 2 views
0

Я попытался сделать это как можно проще.Создать каталог/каталоги в Eclipse с java.io.File

Пример:

File f = new File("non_existing_dir/someDir"); 
System.out.println(f.mkdir()); 
System.out.println(f.mkdirs()); 

mkdir() и mkdirs() возвращение как false ° _ °. Обе работы (создать каталог), если я использовать двойной обратный слэш \\ (как "\\non_existing_dir\\someDir" НО:

если я .toURI() после этого я получаю: file:/Users/MyName/Desktop/%5Cnon_existing_dir%5CsomeDir/

если я .getPath() я получаю: \non_existing_dir\someDir

если я .getCanonicalPath() я получаю: /Users/MyName/Desktop/\non_existing_dir\someDir



Так я хочу вместо этого, чтобы это повторно зультатов:

с .toURI() приема: file:/Users/MyName/Desktop/non_existing_dir/someDir/

с .getPath() приема: /non_existing_dir/someDir

и с .getCanonicalPath() приема: /Users/MyName/Desktop/non_existing_dir/someDir


Спасибо заранее всем.

+1

независимым от платформы способом было бы использовать 'File.separator'. – ares

+0

Я использую Linux 12. Он дает результат, как вы ожидали –

ответ

1

Если non_existing_dir не существует, вы можете проверить getParentFile() и создать его с помощью mkdir().

Также избегайте проблем между ОС с File.separator.

String filename = "non_existing_dir" + File.separator + "someDir"; 

File f = new File(filename); 
if (!f.exists()) { 
    if (!f.getParentFile().exists()) { 
     // make the dir 
     f.getParentFile().mkdir(); 
    } 
    f.mkdir(); 
} 
+1

Большое спасибо :-) Он работает сейчас. И спасибо другим, которые так быстро комментировали мой вопрос. – Aerox

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