我有一个使用Android 4.2 的应用程序。 我的应用程序正在读取.csv文件以搜索信息。 应用程序及其文件位于外部SD卡上,无法读取SD卡上的Android KitK。
所以我把所有文件都移到了内部卡上。 所以我创建了一个名为" mydata"的目录。在/ storage / emulated / 0中,我认为是内部卡。 使用 ESExplorer 为Android我设法传输我的文件 从外部SD卡到内部。
新创建的dir具有r / w权限(我可以在ESexplorer上看到它)" world"并且文件也是R / W.
我的程序在4.2中运行,无法再读取文件。 Java程序说"文件不存在"。 我是否必须为该程序提供一些权限? 我不想根我的手机......但
// test existence of path
public boolean exists(String path) {
File f = new File(path);
boolean b = f.exists();
return b;
}
private void testPath() {
boolean b;
putLog("testPath " + "start");
String path;
String dir = getFilesDir().getAbsolutePath();
putLog("dir= " + dir);
// Set the path for the file of books/films/disk etc according to device
path = "/storage/sdcard0";
b=fm.exists(path);
putLog(path+"="+b);
path = "/storage/emulated/0";
b=fm.exists(path);
putLog(path+"="+b);
path = "/storage/sdcard0/mydata";
b=fm.exists(path);
putLog(path+"="+b);
path = "/storage/emulated/0/mydata";
b=fm.exists(path);
putLog(path+"="+b);
// db is seen R/W access by ESexplorer
path = "/storage/sdcard0/mydata/db";
b=fm.exists(path);
putLog(path+"="+b);
path = "/storage/emulated/0/mydata/db";
b=fm.exists(path);
putLog(path+"="+b);
putLog("end");
}
-LOG:
-12-10 07:38:06.137: D/SMV1(12546): getAppPath start
-12-10 07:38:06.137: D/SMV1(12546): testPath start
-12-10 07:38:06.137: D/SMV1(12546): dir= /data/data/com.abf.searchmedia/files
-12-10 07:38:06.137: D/SMV1(12546): /storage/sdcard0=true
-12-10 07:38:06.147: D/SMV1(12546): /storage/emulated/0=true
-12-10 07:38:06.147: D/SMV1(12546): /storage/sdcard0/mydata=true
-12-10 07:38:06.147: D/SMV1(12546): /storage/emulated/0/mydata=true
-//------ db is seen non existent, but ESexplorer sees it and says RW
-12-10 07:38:06.147: D/SMV1(12546): /storage/sdcard0/mydata/db=false
-12-10 07:38:06.147: D/SMV1(12546): /storage/emulated/0/mydata/db=false