检查文件夹和所有数据是否已存在

时间:2011-06-26 15:36:55

标签: java android file directory

我的Android应用程序仅在第一次午餐时下载数据。数据约为50 mb,约有2500个文件 1.如果文件是在SharedSettings中下载的,那么存储是否是个好主意?问题是,如果用户清除数据应用程序(可能是错误的),他必须重新下载所有内容。我手动将预先打包的数据库复制到/data/data/../databases/,检查数据库是否存在是否是个好主意,如果没有那么下载所有内容?:

if(new File(/data/data/../databases/myDB.db).exists){//dont download}

2.获取文件夹大小并检查它是否同样是查看文件夹+数据是否良好的好方法?或者有更好的方法来检查2个文件夹是否相同? 感谢。

2 个答案:

答案 0 :(得分:1)

不,不要将50MB数据放入SharedSettings。那将会垮掉并死去。一组SharedSettings以XML格式存储在磁盘上,并在打开时完全加载到RAM中。这也不会阻止用户清除此数据。

为了确定数据是否已下载,我建议您在下载完成后立即拥有一个文件,表明已完成。用户无法有选择地删除文件。他们可以清除您的数据,但这也将清除sentinel文件,您将知道您需要重新下载。 (另请注意,如果中间中断,则需要重新启动下载。)

还要确保正确处理文件系统操作,如下所述:http://android-developers.blogspot.com/2010/12/saving-data-safely.html

答案 1 :(得分:0)

如果您担心丢失数据文件,这是另一种想法...如果您的应用程序在任何时候查找文件并且它不存在,请抛出异常,将其传递给显示对话框的处理程序验证您的数据。您可以保留所有所需数据文件的列表,然后只下载不存在的数据文件。如果你愿意的话,就像系统检查一样。

这样,如果他们只丢失了他们在root explorer中意外删除的几个文件,他们最终不会下载50MB; - )