【发布时间】:2020-11-17 17:42:05
【问题描述】:
我尝试了很多来寻找解决方案,但到目前为止一切都失败了。这可能是一些愚蠢的事情。
我正在尝试将照片以 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”
我不知道还能尝试什么。类似的代码适用于其他应用程序。最小 API 为 23。 非常感谢任何帮助。
【问题讨论】:
-
READ_EXTERNAL_STORAGE 怎么样?您是否遇到任何类型的错误/异常?
-
测试设备的 Android 版本是多少? Android 10/Q?
-
READ_EXTERNAL_STORAGE 也存在。上面的代码不会抛出任何异常。当我稍后尝试使用“.createNewFile();”创建文件时它确实会引发异常“找不到文件”。但文件夹创建无一例外失败
-
如果您尝试在 API 级别 29+ 中创建,那么它不起作用。检查这个答案@mremremre1 Can't create directory in Android 10
标签: java android android-external-storage mkdirs