Android,文件夹删除一段时间后

时间:2013-08-10 23:20:53

标签: android xml directory android-sdcard

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

我不需要新的东西来进行备份,而是描述它为什么会发生。该文件夹在sdcard的根目录中创建,名称为“backup”。

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

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();

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

通常不推荐为您的应用创建新文件夹,因为它可能会导致其他应用使用相同的文件夹(如Ilya建议的那样)以及混乱SD卡(以及用户喜欢哪种?)相反,它是最好使用命令getExternalFilesDir()。以下是Google的developer guides所说的话:

  

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