我希望我的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这样的应用程序可以在根目录中创建文件夹。
提前感谢您的帮助。
答案 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