2013-09-02 2 views
0

меня написать это ..Невозможно создать файл во внешней памяти Android

String state = Environment.getExternalStorageState(); 
    if (Environment.MEDIA_MOUNTED.equals(state)) { 

     file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), myFileName); 

     if(file.exists()) { 
      createDelete.setText("Delete file"); 
      Toast.makeText(SaveToFile.this, myFileName+" auto-created",Toast.LENGTH_LONG).show(); 
     } 
     else if(!file.exists()) 
      Toast.makeText(SaveToFile.this, myFileName+" auto-creation failed",Toast.LENGTH_LONG).show(); 
    } 

Когда я запустить его, это сделать не удалось тост. Я не могу найти файл в каталоге (ни эмулятор, ни мой телефон).

Разрешено добавлять манифеста, версия - 8. Эмулятор имеет внешнюю память 512 МБ.

+0

plz post logcat error – Dilip

+0

Нет ошибки или предупреждения о logcat. – G3oRge

ответ

-1

ли этот путь

String state = Environment.getExternalStorageState(); 
    if (Environment.MEDIA_MOUNTED.equals(state)) { 
     // Update HEre 
     File file = new File(Environment.getExternalStorageDirectory() + "/" + myFileName); 

     if(file.exists()) { 
      createDelete.setText("Delete file"); 
      Toast.makeText(SaveToFile.this, myFileName+" auto-created",Toast.LENGTH_LONG).show(); 
     }else{ 
      file.createNewFile(); //UPDATE HERE 
     } 
     else if(!file.exists()) 
      Toast.makeText(SaveToFile.this, myFileName+" auto-creation failed",Toast.LENGTH_LONG).show(); 
    } 
+0

Я добавил его, но ничего не изменилось. – G3oRge

+0

см. Обновление и попробуйте –

+0

Я добавляю createNewFile, и это сработало! Tnx много! – G3oRge

0

Попробуйте это ..

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
    //handle case of no SDCARD present 
} else { 
    File file = new File(Environment.getExternalStorageDirectory() 
     +File.separator 
     +"myDirectory" //folder name 
     +File.separator 
     +"myFile.example"); //file name 
    file.mkdirs(); 
} 

и в манифесте ..

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
0

Если вы хотите создать файл, который вы должны звонок mkdir

File file = new File(Environment..getExternalStorageDirectory(), myFileName); 
// To create the file 
file.mkdir(); 

Поскольку MkDir является логическим, вы также можете сделать это

if (file.mkdir()) { 
    Toast.makeText(SaveToFile.this, myFileName+" auto-created",Toast.LENGTH_LONG).show(); 
} else { 
    Toast.makeText(SaveToFile.this, myFileName+" auto-creation failed",Toast.LENGTH_LONG).show(); 
} 

Если у вас есть несколько подкаталогов, используйте mkdirs(), она будет создавать отсутствующие подкаталоги

http://developer.android.com/reference/java/io/File.html#mkdir%28%29

+0

tnx много! я не знаю точно, но я думаю, что file.exists(), возможно, глючит. – G3oRge