2017-08-29 47 views
0

ルートディレクトリにCAT_IMGフォルダを作成し、リストビューで取得する必要があります。しかし、CAT_IMGフォルダはルートディレクトリに作成されていません。マニフェストファイルに権限を追加しました。ルートディレクトリにフォルダを作成してください。ルートディレクトリにフォルダを作成するには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") + ""); 

     } 
    } 

リストビューでそれを取得するためのコード:

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

を行ってルートディレクトリにフォルダを作成しましたルートディレクトリにディレクトリを作成することができます。全く許可しません。 – Raptor

+0

ルートディレクトリにフォルダを作成する可能性があります – shwettha

+0

SDKアプリケーションから内部ストレージのルートに書き込むことはできません。 –

答えて

-1

私は考えていない私の上記のコードの小さな変化
`

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

あなたは自分のappフォルダに作成しているルートディレクトリにフォルダを作成していません。詳細:https://developer.android.com/reference/android/content/Context.html#getFilesDir()他の人がコメント内で述べたように、デフォルトではルートフォルダ内の何かに触れることはできません。 –

関連する問題