2017-08-29 3 views
0

Ich muss den Ordner CAT_IMG im Stammverzeichnis erstellen und in der Listenansicht abrufen. Der Ordner CAT_IMG wird jedoch nicht im Stammverzeichnis erstellt. Ich habe in der Manifestdatei eine Berechtigung hinzugefügt. Bitte helfen Sie mir einen Ordner im Stammverzeichnis zu erstellen.So erstellen Sie einen Ordner im Stammverzeichnis Android

private void createDirectoryAndSaveFile(Bitmap imageToSave) { 

     File direct = new File(getApplicationContext().getFilesDir() + "/CAT_IMG"); 
     String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmmss").format(new Date()); 
     String fileName = "fav" + timeStamp + ".JPG"; 
     if (!direct.exists()) { 
      File wallpaperDirectory = new File("/CAT_IMG"); 
      wallpaperDirectory.mkdir(); 
     } 

     File file = new File(new File("/CAT_IMG"), fileName); 
     if (file.exists()) { 
      file.delete(); 
     } 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, out); 
      out.flush(); 
      out.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == 1 && resultCode == Activity.RESULT_OK) { 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      createDirectoryAndSaveFile(photo); 
      Log.e("URI", data.getExtras().get("data") + ""); 

     } 
    } 

-Code es in der Listenansicht zu erhalten:

private void getImages() { 
    String[] filenames = new String[0]; 
    File path = new File(getApplicationContext().getFilesDir() + "/CAT_IMG");// add here your folder name 
    if (path.exists()) { 
     filenames = path.list(); 
    } 
    for (int i = 0; i < filenames.length; i++) { 
     photos.add(path.getPath() + "/" + filenames[i]); 
     Log.e("FAV_Images", photos.get(i)); 
     Name.add(filenames[i]); 
     //Sno.add(i);  } 
    } 

} 
+0

Ich glaube nicht, Sie können ein Verzeichnis im Stammverzeichnis erstellen. Keine Erlaubnis. – Raptor

+0

Es ist möglich, einen Ordner im Stammverzeichnis zu erstellen – shwettha

+0

Sie können nicht aus einer SDK-Anwendung in das Stammverzeichnis des internen Speichers schreiben. –

Antwort

-1

i
`

in meinem obigen Code einen Ordner im Stammverzeichnis getan kleine Änderungen erstellt
private void createDirectoryAndSaveFile(Bitmap imageToSave) { 

     File direct = new File(getFilesDir() + "/CAT_IMG/"); 
     String timeStamp = new SimpleDateFormat("ddMMyyyy_HHmmss").format(new Date()); 
     String fileName = "fav" + timeStamp + ".JPG"; 
     if (!direct.exists()) { 
      // File wallpaperDirectory = new File("/CAT_IMG"); 
      direct.mkdir(); 
     } 

     File file = new File(direct, fileName); 
     if (file.exists()) { 
      file.delete(); 
     } 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, out); 
      out.flush(); 
      out.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (requestCode == 1 && resultCode == Activity.RESULT_OK) { 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      createDirectoryAndSaveFile(photo); 
      Log.e("URI", data.getExtras().get("data") + ""); 

     } 
    }` 
+0

Sie erstellen den Ordner nicht im Stammverzeichnis, das Sie in Ihrem App-Ordner erstellen, sie sind anders. Weitere Informationen: https://developer.android.com/reference/android/content/Context.html#getFilesDir() Wie andere in den Kommentaren sagten, können Sie nichts im Stammordner standardmäßig berühren. –

Verwandte Themen