java - android保存文件/创建文件夹到sd卡
问题描述
我已经在 Stack Overflow 上进行了搜索,基本上答案都Environment.getExternalStorageDirectory()
用于获取 sd 卡目录。
但是,在我的手机中,它总是给我/storage/emulated/0
,这似乎是内部存储(不是真正的 sd 卡),而我需要一个像/storage/6265-6530
实际 sd 卡这样的路径。我检查了我的 sd 卡路径/storage/6265-6530
在 android studio 中。
我试图直接使用创建一个文件夹
File file = new File("/storage/6265-6530/MyApp/");
boolean result = file.mkdirs();
但结果总是false
。
我已授予所有权限,android.permission.WRITE_EXTERNAL_STORAGE
并在运行时请求权限。但仍然得到上面的错误。
虽然我尝试在其中创建一个文件夹,/storage/emulated/0
但没关系,如下所示。
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyApp/");
boolean result = file.mkdirs();
并且创建的路径将是:“/storage/emulated/0/MyApp”
我还尝试使用以下方法获取 sd 卡目录:
File[] fs = reactContext.getExternalFilesDirs(null);
fs[1].getAbsolutePath()
但我只能获取 sd 卡中特定于应用程序的目录,例如/storage/6265-6530/Android/data/<my application package>/files
,而不是 sd 卡的根路径。
如何在 sd 卡的根路径中写入文件/创建文件夹?例如。/storage/6265-6530/
我的安卓版本是7。
谢谢
解决方案
推荐阅读
- java - 有没有办法将空手道测试套件打包到可运行的 jar 中?
- java - JPanel.remove 不能与 JButton actionListener 一起使用?
- opengl - glGetAttribLocation 返回未找到
- ruby-on-rails - rails 6 从一个控制器将数据保存到多个表中
- slack - slack 撤销对 3rd 方应用程序的授权
- javascript - 全部解决后执行承诺(作为数据库事务)
- http-headers - 有没有办法设置 Content-Security-Policy 标头来表示不要从任何具有主机名的 URL 运行 javascript
- vue-router - 特定参数的 VueJS 路由器别名
- c++ - 如何找出 Azure 管道图像内容?
- c# - 如何在文本文件中的特定位置写入文本