2011-07-06 63 views
0

我在真实设备上测试我的Android应用程序。
string strFile = "/data/data/com.MYPROJECT/files/mylog.txt"Android缺失文件

(我正确地调用write,刷新,关闭的方法和我实际上可以确认该文件的确是用下面的代码创建)

(new File(strFile)).isFile() -> returns true

:我的应用程序在创建日志文件并且
(new File(strFile + "gibberish")).isFile() -> returns false

我想将这个文件传输到我的电脑,所以我从Android市场安装了一个文件浏览器。但是,当我导航到/data/文件夹时,我发现它是空的。

那么我在哪里可以找到我的文件?

+1

可以在食,但作为传输使用DDMS文件中的任何文件据我所知你仍然需要植根设备。 – gregory561

回答

2

它是空的,因为Android安全模型阻止您阅读不属于您的目录。

您可以从您的应用程序访问它,因为您的应用程序拥有该文件,因此可以使用它执行任何操作。

从安装的文件资源管理器访问目录时,资源管理器正在运行的用户没有权限访问/ data目录中的任何内容。这就是为什么它看起来是空的。如果您尝试从您的应用中读取/数据,它也会显示为空,但由于您指定了完整路径,因此您可以访问最终文件。这不适用于浏览器,因为您仍然以设备上的其他用户身份运行。

有两种选择:

  1. 实施某种形式的导出功能,将文件保存到外置SD卡。这是FAT格式化,并不会强制权限,以便您可以访问存储在其上
  2. 根您的设备可以访问所有文件,包括这个特殊的一个
+0

这解释它,谢谢 – Caner