2015-03-12 2 views
0

Я использовал код для создания папки под SD-картой. Но папка никогда не создается. Я добавил использование-разрешение android: name = "android.permission.WRITE_EXTERNAL_STORAGE", чтобы манифест.Простое создание папки под SDCARD в Android Studio

File folder = new File(Environment.getExternalStorageDirectory().toString()+"/Images"); 
     folder.mkdirs(); 


     if(folder.exists()){ 
      Toast.makeText(getApplicationContext(),"exists",Toast.LENGTH_LONG).show(); 
     }else{ 

      Toast.makeText(getApplicationContext()," not exists",Toast.LENGTH_LONG).show(); 
     } 
+0

Я только начал изучать разработку Android ... Было бы здорово, если бы кто-нибудь мог помочь! – Gopi

ответ

0

Попробуйте добавить этот код для отладки, можно ли на самом деле писать на внешнем запоминающем устройстве или нет:

Log.d("MyActivity", "Can write: " + Environment.getExternalStorageDirectory().canWrite()); 

и проверить результат mkdirs тоже:

boolean result = folder.mkdirs(); 
Log.d("MyActivity", "mkdirs: " + result); 
+0

Log.d («MyActivity», «Can write:» + Environment.getExternalStorageDirectory(). CanWrite()); вы можете показать запись: false. Но я добавил андроид: name = "android.permission.WRITE_EXTERNAL_STORAGE" к моему манифесту. – Gopi

+0

if (Environment.MEDIA_MOUNTED.equals (state)) { Log.d («Test», «sdcard смонтирован и доступен для записи»); } показывает sdcard смонтирован и доступен для записи – Gopi

0

Вы должны также добавить:

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

Спасибо, что ответили ... Но он не работает! Условие if в коде показывает «не существует». Есть и другие факторы? – Gopi

+0

Вы можете создать файл таким образом: 'new File (Environment.getExternalStorageDirectory(),"/Images ");' И если вам нужно создать только один каталог, используйте: 'directory.mkdir()'. Вы проверили: 'folder.getPath()'? Это похоже на то, что вам нужно? –

0
File directory = new File(pathname); 
       if (directory != null && !directory.exists() 
         && !directory.mkdirs()) { 
        try { 
         throw new IOException("Cannot create dir " 
           + directory.getAbsolutePath()); 
        } catch (IOException e) { 

         e.printStackTrace(); 
        } 
       } 
0

Попробуйте и проверьте поток Вход ->

 //First check if the sd card is mounted or not  
     if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 

       { 
        // sd card mounted 
        Log.d("SDCard", "SDcard is present"); 
       } 

       File folder = new File(Environment.getExternalStorageDirectory() + File.separator +"Images/"); 
      if(!folder.exists()) 

       { 
       folder.mkdirs(); 
       Log.d("SDcard", "Folder created"); 
       } 
      else 
     { 
       Log.d("SDCard", "Folder already exists"); 
     }  
    } 
+0

if (android.os.Environment.getExternalStorageState(). Equals (android.os.Environment.MEDIA_MOUNTED)) показывает, что SD-карта смонтирована. Но Log.d («MyActivity», «Can write:» + Environment.getExternalStorageDirectory(). CanWrite()); отображает Can Write: false. – Gopi

+0

if (Environment.MEDIA_MOUNTED.equals (state)) { Log.d («Test», «sdcard смонтирован и доступен для записи»); } показывает, что sdcard смонтирован и доступен для записи – Gopi

+0

любое количество раз, когда я запускаю создание папки (! Folder.exists()), является истиной ... папка никогда не создается – Gopi

0

проблема решена! Я добавил блок в неправильный раздел манифеста. Он должен предшествовать или следовать разделу.

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