我一直在使用“Environment.getExternalStorage()
”来存储和管理文件。 logcat
没有使用该方法发出警告消息,并且工作得很好。
但是,我的项目需要使用方法“Context.getExternalFilesDir(String type)
”并且有警告信息
ContextImpl:Failed to ensure directory: /storage/external_SD/Android/data/(package name)/files
幸运的是 File 对象可以正常工作(读取或写入或制作文件夹也可以)。
但我想知道如何解决该警告消息。我错过了什么吗?
最佳答案
您应该知道警告消息是如何出现的。
getExternalFilesDir(String type)
将调用 getExternalFilesDirs(String type)
(注意第二个方法名称末尾的“s”)。
getExternalFilesDirs(String type)
会查找该类型的所有目录,最后调用ensureDirsExistOrFilter()
确保目录存在。
如果无法访问该目录,它将打印警告!
Log.w(TAG, "Failed to ensure directory: " + dir);
dir = null;
因此,如果您的设备有两个 sdcard 路径,它将产生两个目录。如果一个不可用,则会出现警告。
结论是警告不需要修复。
关于Android:无法确保目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33362620/