2012-01-21 2 views
1

Есть ли способ, который позволяет в Android 2.1 создать новый файл и, если относительные каталоги не существуют, создать их тоже? делают мне знать, потому этот фрагмент кода не работает:создание файла и всех родительских каталогов

static String separator = File.separator; 
public static final String DIRECTORYBIGLIETTI = "C:" + separator + "Users" + separator + "7-Spode" + separator + "Documents" + separator + "Android" + separator + "HUVWSZE"; ///sdcard/.SpodeApps/HUVWSZE/ 
public static final String FILEBIGLIETTI = DIRECTORYBIGLIETTI.concat(separator + "lista.txt"); 

File cartellainputoutput = new File(DIRECTORYBIGLIETTI); 
     if(!cartellainputoutput.exists()) 
     { 
      cartellainputoutput.mkdirs(); 
     } 
     File fileinputoutput = new File(FILEBIGLIETTI); 
     if(!fileinputoutput.exists()) 
      try { 
       fileinputoutput.createNewFile(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

может я попросить администратора для обновления графики этого веб-сайта? ;)

ответ

2

Для создания каталогов необходимо создать mkdirs(), а затем создать файл.

1

Просто сделать это ясно, вы не можете использовать Windows, такие как пути к файлам (например, C:\Users\7-Spode\Documents\Android\HUVWSZE) в Android, вы должны использовать Linux-подобные пути к файлам (например, /data/my.android.application/data_directory/file или /sdcard/directory/file.

Кроме того, вы должны использовать методы, такие как getFilesDir() (для внутреннего хранения) и getExternalStorageDirectory() (для внешнего хранения, например, SD карты), чтобы получить эти каталоги, и оттуда вы можете просто создать регулярный File объект и обработать его оттуда.

Примера (с внутренним хранение):

File dir = getFilesDir(); // Returns a directory exclusively for this app. 
File file = new File(dir, "directory/file"); 
file.mkdirs(); 
file.createNewFile(); 

Также обратите внимание, что при работе с внешним хранилищем вы всегда должны проверить, нет ли внешнего хранилища (например, если SD-карта была удалена или устройство подключено к компьютеру), используя getExternalStorageState().

Для получения дополнительных сведений о том, как использовать внутреннее и внешнее хранилище в Android, читайте this nifty article.

+1

Это право. просто для завершения ответа ... графика прекрасна! :) –

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