1

我正在将 XML 文件保存到设备的内部存储中,如下所示:

public void saveFriendData(FriendDetails friend, Context context) throws IOException 
{
        XmlSerializer serializer = Xml.newSerializer();
        StringWriter writer = new StringWriter();
        ContextWrapper wrapper = new ContextWrapper(context);

        File friendDir = wrapper.getDir("friend", Context.MODE_PRIVATE);
        File xmlFile = new File(friendDir, String.valueOf(friend.getId()) + ".xml");
        FileOutputStream os = new FileOutputStream(xmlFile);


        serializer.setOutput(os, "UTF-8");

        //start
        serializer.startDocument(null, true);
        serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);

        serializer.startTag("", "Friend");

        serializer.startTag("", "Id");
        serializer.text(String.valueOf(friend.getId()));
        serializer.endTag("", "Id");

        serializer.startTag("", "ImageUrl");
        serializer.text(friend.get_photoUri());
        serializer.endTag("", "ImageUrl");

        serializer.endTag("", "Friend");
        serializer.endDocument();

        serializer.flush();
        os.close();


    }

使用该应用程序后,我进入 Windows 资源管理器,进入 Android/Data 目录,并且我希望保存 XML 的包的文件夹不存在。

谁能解释我的 XML 保存在哪里?该文件是指要保存到的目录如下:

/data/data/com.test.test/

谢谢!

4

2 回答 2

1

/data/是私有存储,不能通过 MTP/Windows 资源管理器访问。这是设计和安全功能。

要访问/data/,您需要通过 root 绕过此操作。

在这里阅读更多

于 2013-06-07T15:22:26.483 回答
0

android 上的 /data 是私有的,只有存储数据的应用程序才能访问数据(并且只有他们自己的数据)。但是,您可以将文件写入 /data/local/tmp/ 文件夹。这是我所知道的唯一一个文件夹(在 /data 中),它允许任何人在没有 root 的情况下进行读写。您可以通过 adb shell 连接您的 Nexus 4 并从那里提取您的文件。请记住,在 ls 开始在 android shell 中工作之前,您必须到达 /data/local/tmp 目录。

于 2013-06-07T15:39:13.597 回答