首页 > 解决方案 > 无法在外部存储中创建文件夹,Android

问题描述

我尝试了很多寻找解决方案,但到目前为止一切都失败了。这可能是一件愚蠢的事情。

我正在尝试将照片保存为手机存储中的 jpeg。即使是制作文件夹的简单任务,一切都失败了。下面的代码是我用来创建文件夹的代码。

private void makeFolder(){
    try{
        File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath(),getString(R.string.app_name));
        boolean success = true;
        if (!folder.exists()) {
            success = folder.mkdirs();
        }
        if (success) {
            Toast.makeText(this,"Done",Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(this,"folder_failed",Toast.LENGTH_SHORT).show();
            System.out.println(folder.getAbsolutePath());
        }
    }catch (Exception e){
        Toast.makeText(this,"exception",Toast.LENGTH_SHORT).show();
        e.printStackTrace();
    }
}

我尝试了许多不同的方法,例如:

        File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +
                File.separator + getString(R.string.app_name)+File.separator);

        File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() +
                File.separator + getString(R.string.app_name);
        
        File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath()
                ,getString(R.string.app_name));

我已经尝试过 mkdirs 和 mkdir 并且

-Environment.getExternalStorageDirectory().getAbsolutePath()
-getExternalStorageDirectory().getAbsolutePath()
-Environment.getExternalStorageDirectory()
-getExternalStorageDirectory()

该权限存在于清单中并被接受。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

System.out 打印的路径是“/storage/emulated/0/appname”

我不知道还能尝试什么。类似的代码适用于其他应用程序。Min API 是 23。非常感谢任何帮助。

标签: javaandroidandroid-external-storagemkdirs

解决方案


我建议你尝试Context.getExternalFilesDir()而不是Environment.getExternalStorageDirectory()


推荐阅读