2017-08-29 187 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

您不是在根目录中创建文件夹,而是在您的应用程序文件夹中创建它,它们是不同的。更多信息:https://developer.android.com/reference/android/content/Context.html#getFilesDir()正如别人在评论中所说的,默认情况下你不能触摸根文件夹中的任何东西。 –

相关问题