2016-11-21 76 views
1

我有一个任务将位图保存在内部存储中。我尝试了各种方法。我无法获得所需的输出。该文件夹创建并保存在文件夹内的 data/user/0/data/~~。 --tried如何在WhatsApp或Allo等内部存储器中创建文件夹?

File mediaFile = new File(c.getExternalCacheDir(), "/MaherSaad"); 

工作,并在高速缓存中创建的文件夹 - 安卓/数据/ com.myapp〜/缓存

我想创建的文件夹,并出现类似

内部存储/ MYAPP/newFolder

enter image description here

回答

4

终于找到了创建数据文件夹

简单

File mFolder = new File(Environment.getExternalStorageDirectory(), "Folder_Name"); 
      if (!mFolder.exists()) { 
       boolean b = mFolder.mkdirs(); 

      } 

错误不处理之外的文件夹中的解决方案 运行时间许可 代码简单...

String TAG = "Permsission : "; 
     if (Build.VERSION.SDK_INT >= 23) { 
      if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) 
        == PackageManager.PERMISSION_GRANTED) { 
       Log.v(TAG,"Permission is granted"); 
       return true; 
      } else { 

       Log.v(TAG,"Permission is revoked"); 
       ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); 
       return false; 
      } 
     } 
     else { //permission is automatically granted on sdk<23 upon installation 
      Log.v(TAG,"Permission is granted"); 
      return true; 
     } 

手柄许可

@Override 
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 
     super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
     String TAG = "Permsission : "; 
     if(grantResults[0]== PackageManager.PERMISSION_GRANTED){ 
      Log.v(TAG,"Permission: "+permissions[0]+ "was "+grantResults[0]); 
      //resume tasks needing this permission 
      //Define the path you want 
      File mFolder = new File(Environment.getExternalStorageDirectory(), "Folder_Name"); 
      if (!mFolder.exists()) { 
       boolean b = mFolder.mkdirs(); 

      } 
     } 
    } 
0

试试这个功能,我t保存一个txt文件在内部存储器中创建一个新的文件夹(如果它不存在)。不要忘了给所有权限到清单文件

public void saveData(String data){ 
    File root_text = Environment.getExternalStorageDirectory(); 
    try{ File folder = new File(Environment.getExternalStorageDirectory() + "/TESTEXAMPLE"); 
     boolean success = true; 
     if (!folder.exists()) { 
      success = folder.mkdir(); 
     } 
     BufferedWriter fwv = new BufferedWriter(new FileWriter(new File("/sdcard/TESTEXAMPLE/SavedData.txt"), false)); 
     if (root_text.canWrite()) { 
      fwv.write(data); 
      fwv.close(); 
     } 
    }catch (Exception e){ 
     Log.e("MODEL", "ERRORE: " + e.toString()); 
    } 
} 
+0

ERRORE:java.io.FileNotFoundException:/sdcard/TESTEXAMPLE/SavedData.txt:打开失败:ENOENT(没有这样的文件或目录) - 我的设备没有SD卡..这种影响? –

+0

很奇怪。实际上,使用此代码我保存在内部存储器中,而不是sdcard。你是否已经在Manifest中获得了许可? <使用权限android:name =“android.permission.WRITE_EXTERNAL_STORAGE”/> <使用权限android:name =“android.permission.READ_EXTERNAL_STORAGE”/> –

+0

yes 尝试使用** Environment.getExternalStorageDirectory()**之前没有为我工作 –

相关问题