我花了很多时间尝试为我正在编写的应用程序查找/创建文件。当我拉出应用程序目录名时,我得到:/data/data/com.example.android.[myapp]/files。我正在使用File(getFilesDir():
File fileDir = new File(getFilesDir() + File.separator);
Log.i(TAG, "File directory: "+fileDir);
当我尝试找到此路径时,我在此处找到了许多应用程序文件夹:Android / data / com但Android下没有/ data / data文件夹。那里有许多其他应用程序文件夹,但不是我的。无论是使用Android文件应用程序还是通过USB使用Windows资源管理器,我都会看到相同我也尝试使用Eclipse DDMS选项卡。我看到一个数据文件夹左边有一个(+),但是当我点击它时,它不会展开。
我还尝试使用Windows资源管理器手动创建目录和文件,我的应用仍然无法找到Android / data / com.example ...以及Android / data / data / com.example。 ..路径。
令我感到困惑的是,当应用程序创建路径和文件并写入它时(使用MODE_WORLD_WRITEABLE)我没有抛出任何异常但是我无法读回它或者使用上面提到的任何一种工具看到它。我已将清单权限设置为应用程序的WRITE_INTERNAL_STORAGE和WRITE_INTERNAL_STORAGE。
显然,我犯了一个非常基本的错误。
我使用的是Android 4.1.2(API 16)。
此致 ScratchingMyHead
答案 0 :(得分:0)
要获取我的应用程序目录的路径,请尝试此代码示例
PackageManager m = getPackageManager();
String s = getPackageName();
try {
PackageInfo p = m.getPackageInfo(s, 0);
s = p.applicationInfo.dataDir;
} catch (NameNotFoundException e) {
Log.w("yourtag", "Error Package name not found ", e);
}
答案 1 :(得分:0)
当我尝试找到这条路径时,我在这里找到了很多应用程序文件夹:Android / data / com但Android下没有/ data / data文件夹。
这是因为您正在查看文件所在的external storage,而不是internal storage。在模拟器上使用DDMS来检查内部存储。
我也尝试使用Eclipse DDMS选项卡。我看到一个数据文件夹左边有一个(+),但是当我点击它时,它不会展开。
这听起来就像在硬件上进行测试时所得到的,因为您和DDMS都无法访问生产硬件上/data
的内容。