Android在内部存储中创建公共目录,该目录在卸载后仍然存在

时间:2014-06-08 23:59:32

标签: android

我希望我的Android应用程序在手机的内部存储中创建一个公用文件夹。我想保存一些文本文件,即使在应用程序卸载后我也希望它可用。

目标是创建一些我要传输到PC的txt进行进一步分析。 我想尝试一下Environment.DIRECTORY_DOCUMENTS,但目标手机很旧,而且没有该文件夹。

我已阅读文档,但找不到任何解决方案。我也试图硬编码文件夹,但它仍然不会被创建。我只想拥有像相机文件夹这样的文件夹。

我尝试了this,但它不起作用。

以下是我使用的代码:

File file = new File("/folder to create here", "name of file here" + File.pathSeparator + "txt");
if (!file.mkdirs())
    Log.e(getClass().toString(), "Save Data -> Directoy not created"); 

try {
    fos = new FileOutputStream(file);
    fos.write(saveString.toString().getBytes());
    fos.flush();
    fos.close();
}
catch (Exception e){
    if (e instanceof FileNotFoundException) {
        Toast.makeText(getApplicationContext(), "Could not create file, please try again", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }
    if (e instanceof IOException) {
        Toast.makeText(getApplicationContext(), "Could not write in file, please try again", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }
}

有没有办法做到与否。有很多像viber这样的应用程序可以在根目录中创建文件夹。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

据我所知,没有这样的机制来创建一个持久的世界可写目录。卸载后将删除内部存储中的应用程序数据目录。

由于您的设备已与PC连接(我是否正确?),这是我的建议。

当您的设备连接到PC时,在PC中,使用adb工具在/ data / local / tmp

下创建公共可写目录
adb shell mkdir /data/local/tmp/public_write
adb shell chmod 777 /data/local/tmp/public_write

在您的应用中,将要保存的数据写入/data/local/tmp/public_wirte/data.txt

在您的PC中,只要您的设备与PC连接并启用了设备的USB调试,就可以使用adb pull访问该文件。

adb pull /data/local/tmp/public_write/data.txt