java - 无法在外部存储中创建文件夹,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。非常感谢任何帮助。
解决方案
我建议你尝试Context.getExternalFilesDir()
而不是Environment.getExternalStorageDirectory()
推荐阅读
- c# - 如何在共享服务器上托管的 ASP.Net Core 3.1 应用程序中存储连接字符串等生产机密
- reactjs - 需要帮助来创建带有过滤下拉列表的 React api 调用
- ios - 我在 iOS 上启动音频会话时遇到问题
- python - 使用 id 和其他字段查询与使用 id 查询并在之后检查其他字段
- android - 在 android 上的 tabclick FreshTabbedNavigationContainer 上弹出到根目录
- python - Pandas:如何防止 df.append() 返回 NaN 值
- bash - 如何为未在 bash 中退出的 gpg 命令返回退出值以验证错误的密码?
- c# - Wpf 中的 C# Vlc 包装器
- javascript - Wix Coded 下拉菜单卡住了
- system-verilog - 如何在特定信号开启后编写覆盖点来检查信号是否开启?