安卓,文件夹删除一段时间后



我的应用程序正在SD卡上创建一个文件夹,然后创建一个xml文件。但过了一段时间,文件夹和文件就会被删除。该文件用于存储应用程序中的数据备份。

我不需要新的东西来备份,只需要描述一下为什么会发生这种情况。该文件夹是在名为"backup"的SD卡的根目录中创建的。

这就是我创建文件夹和文件的方式:

File path = new File(Environment.getExternalStorageDirectory() + "/backup/tet/");
path.mkdirs();
File backupdir = new File(path, getDateTime() + ".xml");
fos = new FileOutputStream(backupdir);
fos.write(encodeDb(ctx).getBytes());
fos.close();

这就是我读取文件的方式:

boolean parsed = false;
File file = new File(Environment.getExternalStorageDirectory() + "/backup/tet/" + filename);
fis = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
fis.read(buffer, 0, (int) file.length());
parsed = decodeDb(ctx, new String(buffer));
fis.close();

我希望你能帮助我讨论这个问题。

也许其他应用程序也使用了名为"backup"的文件夹,然后将其删除?我会以不同的方式命名文件夹,以确保它是特定于您的应用程序的。

通常不建议为您的应用程序创建一个新文件夹,因为这可能会导致其他应用程序使用相同的文件夹(正如Ilya所建议的),并弄乱SD卡(什么用户喜欢这样?)相反,最好使用命令getExternalFilesDir()。以下是谷歌的开发者指南:

如果使用的是API级别8或更高版本,请使用getExternalFilesDir()打开一个文件,该文件表示应保存文件的外部存储目录。此方法采用一个类型参数,该参数指定所需子目录的类型,例如DIRECTORY_MUSIC和DIRECTORY_RINGTONES(传递null以接收应用程序文件目录的根目录)。如果需要,此方法将创建适当的目录。通过指定目录类型,您可以确保Android的媒体扫描仪将正确地对系统中的文件进行分类(例如,铃声被识别为铃声,而不是音乐)。如果用户卸载您的应用程序,此目录及其所有内容都将被删除。

最新更新