【问题标题】:Check if the folder and all data already exist检查文件夹和所有数据是否已经存在
【发布时间】:2011-06-26 15:36:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: java android file directory


    【解决方案1】:

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

    为了确定数据是否已下载,我建议您在下载完成后创建一个文件,表明它已完成。用户不能有选择地删除文件。他们可以清除您的数据,但这也会清除哨兵文件,您会知道需要重新下载。 (另外请记住,如果下载在中间中断,您将需要重新启动下载。)

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

    【讨论】:

    • 很确定他说他正在存储 - 如果 - 文件是在 sharedprefs 中下载的,就像一个布尔标志。不是实际数据。这将是一个不错的解决方案。如果用户清除了应用程序数据,您可能想重申他们没有清除任何其他内容,imo。
    • 是的哈哈我的意思是存储一个布尔值(就像 Eric 说的那样)。谢谢你的回答
    【解决方案2】:

    如果您担心丢失数据文件,另一种想法...如果您的应用在任何时候查找文件但该文件不存在,则抛出异常,将其传递给显示对话框和“验证您的数据。您可以保留所有需要的数据文件的列表,然后只下载不存在的数据文件。如果您愿意,可以进行系统检查。

    这样,如果他们只是丢失了几个在根资源管理器中意外删除的文件,他们最终不会下载 50MB ;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 2020-02-04
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 2021-11-28
      相关资源
      最近更新 更多