peb*_*les 16 android file documents save
我想在文档目录中的Android 4.1.2智能手机上保存一个文件.
此代码段:
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS),"test.txt");
Run Code Online (Sandbox Code Playgroud)
抛出此异常:
E/AndroidRuntime? FATAL EXCEPTION: main
java.lang.NoSuchFieldError: android.os.Environment.DIRECTORY_DOCUMENTS
Run Code Online (Sandbox Code Playgroud)
虽然这个工作:
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),"test.txt");
Run Code Online (Sandbox Code Playgroud)
但我想将文件保存在我的文档目录中,而不是保存在下载中.我读过DIRECTORY_DOCUMENTS仅适用于Android 4.4及更高版本.但我的智能手机上还有一份文件.那么,没有解决方案将其保存在文档中吗?
谢谢答案
卵石
小智 19
你无法访问DIRECTORY_DOCUMENTS因为Android 4.1.2中没有它.这意味着,虽然外部存储中有一个Documents目录,但它没有指向DIRECTORY_DOCUMENTS(因为它不存在).要解决此问题,您必须创建目录(如果该目录不存在)并手动获取该文件夹的路径.
File docsFolder = new File(Environment.getExternalStorageDirectory() + "/Documents");
boolean isPresent = true;
if (!docsFolder.exists()) {
isPresent = docsFolder.mkdir();
}
if (isPresent) {
File file = new File(docsFolder.getAbsolutePath(),"test.txt");
} else {
// Failure
}
Run Code Online (Sandbox Code Playgroud)
小智 8
该文件夹存在于Android的旧版本(来自Api 1)中,但DIRECTORY_DOCUMENTS字段在版本4.4(Api 19 - Kitkat)中首先出现.
我的解决方案是使用Environment.getExternalStorageDirectory() + "/Documents"DIRECTORY_DOCUMENTS代替较旧的Android版本.