2009-08-04 2 views
12

Возможно несколько смущают, но через несколько часов я до сих пор не может создать файл в Java ...Как создать файл в java (а не в папке)?

File file = new File(dirName + "/" + fileName); 
try 
{ 
    // --> ** this statement gives an exception 'the system cannot find the path' 
    file.createNewFile(); 
    // --> ** this creates a folder also named a directory with the name fileName 
    file.mkdirs(); 
    System.out.println("file != null"); 
    return file; 
} 
catch (Exception e) 
{ 
    System.out.println(e.getMessage()); 
    return null; 
} 

Что я здесь отсутствует?

ответ

20

Попробуйте создать родительские каталоги первого:

File file = new File(dirName + File.separator + fileName); 
try { 
    file.getParentFile().mkdirs(); 
    file.createNewFile(); 
    System.out.println("file != null"); 
    return file; 
} 
catch (Exception e) 
{ 
    System.out.println(e.getMessage()); 
    return null; 
} 
+0

спасибо, путая, что Java не кажется дифференцироваться файлы из папки – Gerard

+2

Как Java должны сделать это? Что такое «a», файл или каталог? Почему «foo.dat» должен быть файлом, а не каталогом? Вы должны сказать Java, что хотите. Если вы сообщите Java о создании каталога с именем «index.html», он с радостью создаст каталог с именем «index.html». :) – Bombe

+0

ваше замечание связано с перспективой программистов, мое замешательство было с точки зрения пользователя, поскольку компьютер-пользователь различает папки и файлы; java, возможно, выбрал поддержку людей, например. с файловым перечислением – Gerard

1
String dirName="c:\\dir1\\dir2"; 
    String fileName="fileName.txt"; 
    File file = new File(dirName + "/" + fileName); 
    try { 
     new File(dirName).mkdirs(); // directory created here 
     file.createNewFile(); // file created here 
     System.out.println("file != null"); 
     return file; 
    }catch(Exception e) 
     { 
      System.out.println(e.getMessage()); 
      return null; 
     } 
Смежные вопросы