【发布时间】:2018-04-23 14:10:31
【问题描述】:
是否可以在 SD 卡中创建文件?或至少将文件从内部存储复制到 SD 卡?我试过getExternalStorageDirectory(),它返回一些手机的内部存储。尝试了其他方法来获取 SD 卡的路径。但是file.mkdir() 总是返回 false。
【问题讨论】:
标签: android file android-sdcard
是否可以在 SD 卡中创建文件?或至少将文件从内部存储复制到 SD 卡?我试过getExternalStorageDirectory(),它返回一些手机的内部存储。尝试了其他方法来获取 SD 卡的路径。但是file.mkdir() 总是返回 false。
【问题讨论】:
标签: android file android-sdcard
不要忘记这个权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
另外一个question是一个在SD卡上创建文件的例子。
【讨论】:
问题在于,正如您所说,getExternalStorageDirectory() 不会在每台设备上都返回 SD 卡。对于 Android,它被称为外部,因为它不是您的包私有的,并且可以被其他应用程序访问,而对于 Android,内部是当只有您的应用程序可以访问文件时(例如,它可以是您的数据库)。无法保证您每次都能为每台设备获得 SD 卡。
看看对您的问题的评论,它提供了一个有用的链接,指向 CommonsWare 的答案,它很好地解释了这个问题。在下面您可以找到一些解决方法,例如this one。
至于mkdir()为什么返回false,一个原因可能是权限。我相信外部存储是危险权限的一部分,因此您需要在运行时获取它,而不仅仅是在清单中。
【讨论】: