2013-06-26 3 views
0

решаемыеAndroid не делает директор (MKDIR)

я изменить его Лил немного

File path = new File(Environment.getExternalStorageDirectory(), "AndroidPaint"); 
     File file = new File(path, tmpImg); 
     path.mkdirs(); 
     if(!file.exists()) { 
      file.createNewFile(); 
     } 
     os = new FileOutputStream(file); 
     source.compress(CompressFormat.JPEG, 100, os); 
     os.flush(); 
     os.close(); 

также проблема может быть источником Bitmap я обнаружил то является ничтожной

ПРОБЛЕМА

на моей программе Android Я хочу сохранить растровое изображение на внешнем хранилище, я получил разрешение f или сделать что

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

и получил код для этого

public class SaveOpen { 
public static void save(Bitmap source) { 
    String tmpImg = String.valueOf(System.currentTimeMillis()) + ".jpg"; 
    OutputStream os = null; 
    try { 
     File dir = new File(Environment.getExternalStorageDirectory(), "myapp"); 
     if (!dir.mkdirs()) { 
      Log.e("save", "Directory not created"); 
     } 
     File file = new File(dir, tmpImg); 
     if(!file.exists()) { 
      file.createNewFile(); 
     } 
     os = new FileOutputStream(file); 
     source.compress(CompressFormat.JPEG, 100, os); 
     os.flush(); 
     os.close(); 
    } 
    catch (IOException e) { 
     Log.d("save", e.getMessage()); 
    } 
} 

}

но когда я нажмите кнопку Сохранить в моем приложении я получаю

открыть не удалось: ENOTDIR (Не справочник)

исключение, что я делаю неправильно.? я попробовал все руководство я нашел в гугле, пожалуйста помочь

+0

попробовать это, удалить 'если { Log.e ("сохранить",«Каталог не создан (dir.mkdirs (!)) «); } ' И измените это ' Файл файла = новый файл (dir, tmpImg); file.mkdirs(); if (! File.exists()) {' – Varun

+0

@Varun still> open failed: ENOTDIR (не каталог) – Mariusz

ответ

0

попробовать это:

String myDir = Environment.getExternalStorageDirectory() + "/myapp"; 

File dir = new File(myDir); 
+0

все еще не работает – Mariusz

+0

@Mariusz: используйте' Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_PICTURES); 'для сохранения изображения или файл –

0

на старые устройства доступ к внешнему Storge не представляется возможным, если есть подключение USB (режим диска), так войти что Environment.getExternalStorageDirectory() возвращаясь в вашем случае.

+0

Я работаю над эмулятором, но на реальном устройстве (отключен) также не может создать режиссер – Mariusz

0

Я столкнулся с той же проблемой, это похоже на ошибку на Android, я mkdir в командной строке adb, также не удалось. Затем я пытаюсь перезапустить телефон, больше никогда не повторюсь.

0

Моя проблема решена разрешениями добавлений для доступа к внешней памяти:

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