android - 在 /Download 下保存文件的名称为 /storage/emulated/0/Download。有时文件不可访问
问题描述
在我的三星设备上,我在/Download
文件夹中放置了一个文件。当我在我的应用程序中(通过文件浏览器)选择文件时,该文件称为/storage/emulated/0/Download/myfile.db
. 此名称存储在我的应用程序设置中。
在应用程序启动时,应打开该文件。首先,应用程序检查文件是否存在。在某些情况下,比如每两周一次,文件不存在!这也发生在我朋友的手机半年以来。
为什么会这样?多年来,一切顺利。
此代码运行 6 年。当然,我添加了权限的东西。
非常感谢您的帮助!
解决方案
您不能将“下载”用作文件的有保证的存储位置。您应该为应用程序使用内部存储。这是谷歌写的关于下载文件夹的内容:
这个空间被称为外部空间,因为它不能保证是可访问的——它是一个用户可以作为外部存储设备安装到计算机上的存储空间,它甚至可以在物理上是可移动的。
在这里,您可以阅读更多有关Android 中的内部存储和外部存储的信息。
以下是有关Google下载文件夹的更多信息。
注意:如果用户移除 SD 卡或将设备连接到计算机,外部存储可能会变得不可用。并且这些文件对用户和其他具有 READ_EXTERNAL_STORAGE 权限的应用程序仍然可见。因此,如果您的应用程序的功能依赖于这些文件,或者您需要完全限制访问,您应该将文件写入内部存储。
推荐阅读
- python - 不需要更新时的排行榜代码错误
- node.js - 如何使用外部样式和字体渲染 ejs 文件?
- javascript - 使用 post 方法的 Facebook Graph API BATCH 请求
- python - 错误:未编译 Python ssl 扩展。缺少 OpenSSL 库?(在 ubuntu 18.04 上安装 python 2.7)
- react-native - 如何在 Android 中使用 React Navigation Deep 链接
- reactjs - react js编译失败
- apache - 如何在 Apache FTP 上实现 ALLO 命令?
- email - 发送到与来自地址相同域的电子邮件以“中继被拒绝”退回
- vim - vim:在使用 cscope 时更改密码
- c - Makefile 找不到规则