无法访问android / data文件夹?

时间:2010-06-11 01:09:31

标签: android

  try {
     Runtime rt = Runtime.getRuntime();
     Process pcs = rt.exec("ls -l /data");
     BufferedReader br = new BufferedReader(new InputStreamReader(pcs
           .getInputStream()));
     String line = null;
     while ((line = br.readLine()) != null) {
        Log.e("line","line="+line);
     }
     br.close();
     pcs.waitFor();
     int ret = pcs.exitValue();
     Log.e("ret","ret="+ret);
  } catch (Exception e) {
     Log.e("Exception", "Exception", e);
  }

只打印“ret = 0”,如何打印正确的路径?

4 个答案:

答案 0 :(得分:4)

Android保护其内部目录。您只能访问/data/data/your_package下的目录。我相信普通用户对普通设备上的Read目录没有/data权限。

答案 1 :(得分:1)

除了系统进程之外,

数据文件夹在设备上不可访问。您无法通过adb访问无根电话的数据文件夹。您可以访问模拟器或有根电话的数据文件夹。

答案 2 :(得分:0)

您是否尝试使用自己的应用程序,而不是通过生成其他进程(例如Runtime.exec())

File dataDir = new File("/data");

    String[] files = dataDir.list();

    for (int i = 0 ; i < files.length ; i++ ) {
        Log.d(TAG, "File: "+files[i]);
    }

此外,我会查看不同的读取权限,也许还有另一种方法可以通过ContentProviders获取您正在寻找的数据。

答案 3 :(得分:-2)

如果您不想从java代码访问/ data文件夹,而是从PC控制台访问 - 您可以使用adb shell命令。它没有任何限制。

记得要运行模拟器,或者在运行之前通过USB连接手机