• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 21
    • 下载费用:30 金币  

    重庆时时彩单双玩法: 一种实现文件扫描和保存的方法及装置.pdf

    关 键 词:
    一种 实现 文件 扫描 保存 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201210490809.8

    申请日:

    2012.11.27

    公开号:

    CN103838782A

    公开日:

    2014.06.04

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||著录事项变更IPC(主分类):G06F 17/30变更事项:申请人变更前:广东新岸线计算机系统芯片有限公司变更后:广东新岸线计算机系统芯片有限公司变更事项:地址变更前:100084 北京市海淀区中关村东路1号院清华科技园8号楼科技大厦A座16层变更后:510006 广东省广州市番禺区小谷围街外环东路232号13栋A403-A414|||实质审查的生效IPC(主分类):G06F 17/30申请日:20121127|||公开
    IPC分类号: G06F17/30 主分类号: G06F17/30
    申请人: 广东新岸线计算机系统芯片有限公司
    发明人: 不公告发明人
    地址: 100084 北京市海淀区中关村东路1号院清华科技园8号楼科技大厦A座16层
    优先权:
    专利代理机构: 代理人:
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201210490809.8

    授权公告号:

    |||||||||

    法律状态公告日:

    2018.02.16|||2017.07.04|||2015.10.21|||2014.06.04

    法律状态类型:

    授权|||著录事项变更|||实质审查的生效|||公开

    摘要

    本发明公开了一种实现文件扫描和保存的方法,包括:挂载存储设备,并对该存储设备其进行扫描;获取该存储设备的UUID;判断是否有与该UUID对应的子数据库;若有,则打开与该存储设备对应的子数据库和公共数据库;验证与当前存储设备对应的子数据库中的记录的有效性;遍历该存储设备中的每个文件,获取该存储设备中的每个文件的信息;遍历完之后,查询该子数据库中关于该存储设备的所有记录,然后将查询到的记录插入公共数据库中。采用该方法,使用户可以快速访问到经常在该andriod设备上使用的存储设备中的文件信息,并且根据andriod?SDK开发的apk不需要做修改就可以正常访问数据库,对于各种存储设备具有很好的通用性。

    权利要求书

    权利要求书
    1.  一种用于实现文件扫描和保存的方法,其特征在于,包括:
    挂载存储设备,并对该存储设备其进行扫描;
    获取所述存储设备的通用唯一标识符UUID;
    判断是否有与所述UUID对应的子数据库;若有,则打开与所述存储设备对应的子数据库和公共数据库;
    验证与当前存储设备对应的子数据库中的记录的有效性;
    遍历所述存储设备中的每个文件,获取所述存储设备中的每个文件的信息;
    遍历完之后,查询所述子数据库中关于该存储设备的所有记录,然后将查询到的记录插入所述公共数据库中。

    2.  如权利要求1所述的方法,其特征在于,还包括:
    判断若没有与所述UUID对应的子数据库,则先检查现有子数据库的数量;
    当现有子数据库的数量大于或等于指定数量时,则对最近未使用的子数据库进行删除,然后创建与所述存储设备对应的子数据库并保存,再打开与该子数据库和公共数据库;
    当现有子数据库的数量小于指定数量时,则直接创建与所述存储设备对应的子数据库并保存,再打开该子数据库和公共数据库。

    3.  如权利要求1所述的方法,其特征在于,所述子数据库,用于备份记录一个对应的存储设备的文件信息;每个存储设备上的文件系统对应系统中的一个子数据库;所述子数据库仅由本系统进行操作和控制;
    所述公共数据库,用于记录当前所有挂载的存储设备的文件信息,还用于供其它应用程序访问和操作。

    4.  如权利要求1所述的方法,其特征在于,所述在挂载存储设备之后,还包括:
    系统发出挂载广播;
    扫描器收到所述挂载广播后,对该存储设备进行扫描。

    5.  如权利要求1所述的方法,其特征在于,所述验证当前子数据库中的记录的有效性,是根据查询子数据库中的所有记录的属性进行验证;
    所述属性至少包括:文件的存放位置和文件的最后修改时间。

    6.  如权利要求5所述的方法,其特征在于,还包括:
    若文件的存放位置属性所对应的文件存在,并且所述文件的最后修改时间没有变化,说明所述存储设备中确实有该文件,则表示该记录有效。

    7.  如权利要求5所述的方法,其特征在于,还包括:
    若文件的存放位置属性所对应的文件不存在,说明所属存储设备中已经没有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录。

    8.  如权利要求5所述的方法,其特征在于,还包括:
    若文件的存放位置属性所对应的文件存在,但是所述文件的最后修改时间有变化,则删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。

    9.  如权利要求1所述的方法,其特征在于,所述遍历所述存储设备中的每个文件,获取所述存储设备中的每个文件的信息,具体包括:
    当遍历得到一个文件,查看该子数据库中是否有关于该文件的记录,若没有,则获取该文件信息,并将获取到的文件信息保存至该子数据库中,然后继续遍历直到遍历完成,若有,则继续遍历下一个文件。

    10.  如权利要求1所述的方法,其特征在于,还包括:
    当扫描完成,通知其它程序。

    11.  如权利要求2所述的方法,其特征在于,如果同时挂载多个存储设备,系统发出挂载广播,扫描器会根据收到的挂载广播,开始对每个存储设备按挂载顺序执行扫描;并且针对每一个存储设备分别对应创建一个与其UUID号对应的子数据库,并存储。

    12.  如权利要求1所述的方法,其特征在于,当移除或卸载所述存储设备时,系统发出移除或卸载广播,多媒体内容提供器会根据收到的移除或卸载广播,删除所述公共数据库中所有关于所述该存储设备的记录,并且关闭与该存储设备对应的子数据库。

    13.  如权利要求12所述的方法,其特征在于,如果同时移除或卸载多个存储设备,系统发出移除或卸载的广播,所述多媒体内容提供器会根据收到的移除或卸载的广播,开始按移除或卸载顺序删除所述公共数据库中所有关于每个被移除或卸载的存储设备的记录,并且关闭与每个被移除或卸载的存储设备对应的子数据库。

    14.  如权利要求12所述的方法,其特征在于,当再次挂载所述存储设备时,系统发出挂载广播;扫描器接收到的挂载广播后,只需要打开与该存储设备对应的子数据库,对该子数据库中的信息进行更新,然后将该子数据库中的记录全部插入至所述公共数据库中,供其它应用程序apk访问。

    15.  一种用于实现文件扫描和保存的装置,其特征在于,包括:
    扫描???,用于对挂载的存储设备进行扫描,并获取所述存储设备的通用唯一标识符UUID;
    判别???,用于判断系统中是否有与所述UUID对应的子数据库;若有,则打开与所述存储设备对应的子数据库和公共数据库;
    验证???,用于验证与当前存储设备对应的子数据库中的记录的有效性;
    遍历???,用于遍历所述存储设备中的每个文件;
    获取文件信息???,用于获取所述存储设备中的每个文件的信息;和,
    查询???,用于查询所述子数据库中关于该存储设备的所有记录,然后将查询到的记录插入所述公共数据库中。

    16.  如权利要求15所述的装置,其特征在于,还包括创建???;
    所述判别???,判断若没有与所述UUID对应的子数据库,则先检查现有子数据库的数量;当现有子数据库的数量大于或等于指定数量时,则对最近未使用的子数据库进行删除,然后通知创建???;当现有子数据库的数量小于指定数量时,则直接通知创建???;
    所述创建???,用于创建与所述存储设备对应的子数据库,并保存;
    所述判别???,再打开所述创建??榇唇ǖ牡淖邮菘夂凸彩菘?。

    17.  如权利要求15所述的装置,其特征在于,所述子数据库,用于备份记录一个对应的存储设备的文件信息,每个存储设备上的文件系统对应系统中的一个子数据库;所述子数据库仅由本装置的系统进行操作和控制;
    所述公共数据库,用于记录当前所有挂载的存储设备的文件信息,还用于供其它应用程序访问和操作。

    18.  如权利要求15所述的装置,其特征在于,所述验证???,是根据查询子数据库中的所有记录的属性来验证当前子数据库中的记录的有效性;
    所述属性至少包括:文件的存放位置和文件的最后修改时间。

    19.  如权利要求18所述的装置,其特征在于,还包括:
    若文件的存放位置属性所对应的文件存在,并且所述文件的最后修改时间没有变化,说明所述存储设备中确实有该文件,则表示该记录有效。

    20.  如权利要求18所述的装置,其特征在于,还包括:
    若文件的存放位置属性所对应的文件不存在,说明所属存储设备中已经没有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录。

    21.  如权利要求18所述的装置,其特征在于,还包括:
    若文件的存放位置属性所对应的文件存在,但是所述文件的最后修改时间有变化,则删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。

    22.  如权利要求15所述的装置,其特征在于,当所述遍历??楸槔玫揭桓鑫募?,查看该子数据库中是否有关于该文件的记录;若没有,则获取该文件信息,并将获取到的文件信息保存至该子数据库中,然后继续遍历直到遍历完成;若有,则跳过获取文件信息???,继续遍历下一个文件。

    23.  如权利要求15所述的装置,其特征在于,还包括:
    通知???,用于当扫描完成,通知其它程序。

    24.  如权利要求16所述的装置,其特征在于,如果同时挂载多个存储设备,系统发出挂载广播,所述扫描??榛岣菔盏降墓以氐墓悴?,开始对每个存储设备按挂载顺序执行扫描;
    所述创建???,针对每个存储设备分别对应创建一个与该存储设备的UUID号对应的子数据库,并存储。

    25.  如权利要求15所述的装置,其特征在于,还包括卸载???;
    当移除或卸载所述存储设备时,系统发出移除或卸载广播,所述卸载??槭盏揭瞥蛐对毓悴?,删除所述公共数据库中所有关于所述该存储设备的记录,并且关闭与该存储设备对应的子数据库。

    26.  如权利要求25所述的装置,其特征在于,如果同时移除或卸载多个存储设备,系统发出移除或卸载的广播,所述卸载??榛岣菔盏降囊瞥蛐对氐墓悴?,开始按移除或卸载顺序删除所述公共数据库中所有关于每个存储设备的记录,并且关闭与每个存储设备对应的子数据库。

    说明书

    说明书一种实现文件扫描和保存的方法及装置
    技术领域
    本发明属于计算机领域,尤其涉及一种实现文件扫描和保存的方法及装置。
    背景技术
    Android多媒体文件扫描mediascanner的现有方式是:当有存储设备A挂载后,mediascanner接收到MOUNT广播,来对当前所有挂载的存储设备进行文件扫描,然后将扫描后获取的文件信息保存至一个多媒体数据库中,方便android应用程序apk访问;当移除或者卸载该存储设备A后,多媒体数据库操作接口mediaprovider接收EJECT广播将多媒体数据库中有关存储设备A的记录信息全部删除。这样就导致每次挂载存储设备A时,都会对设备A进行重新的扫描和信息保存,很费时间和资源,尤其是进行图片和视频的浏览时,需要重新进行解码过程,导致apk的访问速度很慢,降低了效率,用户体验不好。由于最耗时和耗资源的操作是将文件打开获取信息,然后关闭的过程,因此现有技术存在的缺陷是当拔除设备后,会清空数据库中有关该设备的记录信息,没有充分利用已经扫描获取到的文件信息结果。并且现有技术中针对andriodSDK开发的apk需要做修改才可以正常访问数据库,对于各种存储设备通用性不强。
    发明内容
    有鉴于此,本发明的一个目的是提供一种实现文件扫描和保存的方法及装置。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的?;し段?。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
    本发明的一个目的是提供一种实现文件扫描和保存的方法,包括:
    挂载存储设备,并对该存储设备其进行扫描;
    获取所述存储设备的通用唯一标识符UUID;
    判断是否有与所述UUID对应的子数据库;若有,则打开与所述存储设备对应的子数据库和公共数据库;
    验证与当前存储设备对应的子数据库中的记录的有效性;
    遍历所述存储设备中的每个文件,获取所述存储设备中的每个文件的信息;
    遍历完之后,查询所述子数据库中关于该存储设备的所有记录,然后将查询到的记录插入所述公共数据库中。
    在一些可选的实施例中,还包括:
    判断若没有与所述UUID对应的子数据库,则先检查现有子数据库的数量;
    当现有子数据库的数量大于或等于指定数量时,则对最近未使用的子数据库进行删除,然后创建与所述存储设备对应的子数据库并保存,再打开该子数据库和公共数据库;
    当现有子数据库的数量小于指定数量时,则直接创建与所述存储设备对应的子数据库并保存,再打开该子数据库和公共数据库。
    在一些可选的实施例中,所述子数据库,用于备份记录一个对应的存储设备的文件信息;每个存储设备上的文件系统对应系统中的一个子数据库;所述子数据库仅由本系统进行操作和控制;
    所述公共数据库,用于记录当前所有挂载的存储设备的文件信息,还用于供其它应用程序访问和操作。
    在一些可选的实施例中,所述在挂载存储设备之后,还包括:
    系统发出挂载广播;
    扫描器收到所述挂载广播后,对该存储设备进行扫描。
    在一些可选的实施例中,所述验证当前子数据库中的记录的有效性,是根据查询子数据库中的所有记录的属性进行验证;
    所述属性至少包括:文件的存放位置和文件的最后修改时间。
    在一些可选的实施例中,还包括:
    若文件的存放位置属性所对应的文件存在,并且所述文件的最后修改时间没有变化,说明所述存储设备中确实有该文件,则表示该记录有效。
    在一些可选的实施例中,还包括:
    若文件的存放位置属性所对应的文件不存在,说明所属存储设备中已经没 有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录。
    在一些可选的实施例中,还包括:
    若文件的存放位置属性所对应的文件存在,但是所述文件的最后修改时间有变化,则删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。
    在一些可选的实施例中,所述遍历所述存储设备中的每个文件,获取所述存储设备中的每个文件的信息,具体包括:
    当遍历得到一个文件,查看该子数据库中是否有关于该文件的记录,若没有,则获取该文件信息,并将获取到的文件信息保存至该子数据库中,然后继续遍历直到遍历完成,若有,则继续遍历下一个文件。
    在一些可选的实施例中,还包括:
    当扫描完成,通知其它程序。
    在一些可选的实施例中,如果同时挂载多个存储设备,系统发出挂载广播,扫描器会根据收到的挂载广播,开始对每个存储设备按挂载顺序执行扫描;并且针对每一个存储设备分别对应创建一个与其UUID号对应的子数据库,并存储。
    在一些可选的实施例中,当移除或卸载所述存储设备时,系统发出移除或卸载广播,多媒体内容提供器会根据收到的移除或卸载广播,删除所述公共数据库中所有关于所述该存储设备的记录,并且关闭与该存储设备对应的子数据库。
    在一些可选的实施例中,如果同时移除或卸载多个存储设备,系统发出移除或卸载的广播,所述多媒体内容提供器会根据收到的移除或卸载的广播,开始按移除或卸载顺序删除所述公共数据库中所有关于每个被移除或卸载的存储设备的记录,并且关闭与每个被移除或卸载的存储设备对应的子数据库。
    在一些可选的实施例中,当再次挂载所述存储设备时,系统发出挂载广播;扫描器接收到的挂载广播后,只需要打开与该存储设备对应的子数据库,对该子数据库中的信息进行更新,然后将该子数据库中的记录全部插入至所述公共数据库中,供其它应用程序apk访问。
    本发明的另一个目的是,提供一种实现文件扫描和保存的装置,包括:
    扫描???,用于对挂载的存储设备进行扫描,并获取所述存储设备的通用唯一标识符UUID;
    判别???,用于判断系统中是否有与所述UUID对应的子数据库;若有,则打开与所述存储设备对应的子数据库和公共数据库;
    验证???,用于验证与当前存储设备对应的子数据库中的记录的有效性;
    遍历???,用于遍历所述存储设备中的每个文件;
    获取文件信息???,用于获取所述存储设备中的每个文件的信息;和,
    查询???,用于查询所述子数据库中关于该存储设备的所有记录,然后将查询到的记录插入所述公共数据库中。
    在一些可选的实施例中,还包括创建???;
    所述判别???,判断若没有与所述UUID对应的子数据库,则先检查现有子数据库的数量;当现有子数据库的数量大于或等于指定数量时,则对最近未使用的子数据库进行删除,然后通知创建???;当现有子数据库的数量小于指定数量时,则直接通知创建???;
    所述创建???,用于创建与所述存储设备对应的子数据库,并保存;
    所述判别???,再打开所述创建??榇唇ǖ淖邮菘夂凸彩菘?。
    在一些可选的实施例中,所述子数据库,用于备份记录一个对应的存储设备的文件信息,每个存储设备上的文件系统对应系统中的一个子数据库;所述子数据库仅由本装置的系统进行操作和控制;
    所述公共数据库,用于记录当前所有挂载的存储设备的文件信息,还用于供其它应用程序访问和操作。
    在一些可选的实施例中,所述验证???,是根据查询子数据库中的所有记录的属性来验证当前子数据库中的记录的有效性;
    所述属性至少包括:文件的存放位置和文件的最后修改时间。
    在一些可选的实施例中,还包括:
    若文件的存放位置属性所对应的文件存在,并且所述文件的最后修改时间没有变化,说明所述存储设备中确实有该文件,则表示该记录有效。
    在一些可选的实施例中,还包括:
    若文件的存放位置属性所对应的文件不存在,说明所属存储设备中已经没 有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录。
    在一些可选的实施例中,还包括:
    若文件的存放位置属性所对应的文件存在,但是所述文件的最后修改时间有变化,则删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。
    在一些可选的实施例中,当所述遍历??楸槔玫揭桓鑫募?,查看该子数据库中是否有关于该文件的记录;若没有,则获取该文件信息,并将获取到的文件信息保存至该子数据库中,然后继续遍历直到遍历完成;若有,则跳过获取文件信息???,继续遍历下一个文件。
    在一些可选的实施例中,还包括:
    通知???,用于当扫描完成,通知其它程序。
    在一些可选的实施例中,如果同时挂载多个存储设备,系统发出挂载广播,所述扫描??榛岣菔盏降墓以氐墓悴?,开始对每个存储设备按挂载顺序执行扫描;
    所述创建???,针对每个存储设备分别对应创建一个与该存储设备的UUID号对应的子数据库,并存储。
    在一些可选的实施例中,还包括卸载???;
    当移除或卸载所述存储设备时,系统发出移除或卸载广播,所述卸载??槭盏揭瞥蛐对毓悴?,删除所述公共数据库中所有关于所述该存储设备的记录,并且关闭与该存储设备对应的子数据库。
    在一些可选的实施例中,如果同时移除或卸载多个存储设备,系统发出移除或卸载的广播,所述卸载??榛岣菔盏降囊瞥蛐对氐墓悴?,开始按移除或卸载顺序删除所述公共数据库中所有关于每个存储设备的记录,并且关闭与每个存储设备对应的子数据库。
    采用本发明提供的方案,使用户可以快速访问到经常在该设备上使用的存储设备中的文件信息,并且可以根据andriod SDK开发的apk不需要做修改就可以正常访问数据库,对于各种存储设备具有很好的通用性。
    为了上述以及相关的目的,一个或多个实施例包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明某些示例性方面,并 且其指示的仅仅是各个实施例的原则可以利用的各种方式中的一些方式。其它的益处和新颖性特征将随着下面的详细说明结合附图考虑而变得明显,所公开的实施例是要包括所有这些方面以及它们的等同。
    说明书附图
    图1是本发明实施例提供的挂载存储设备的流程示意图;
    图2是本发明实施例提供的卸载存储设备的流程示意图;
    图3是本发明实施例提供的另一种挂载存储设备的流程示意图;
    图4是本发明实施例提供的另一种卸载存储设备的流程示意图;
    图5是本发明实施例提供的一种实现文件扫描和保存的装置的结构示意图;
    图6是本发明实施例提供的另一种实现文件扫描和保存的装置的结构示意图。
    具体实施方式
    以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。其他实施方案可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的组件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,本发明的这些实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。
    为了解决上述android的扫描和保存的缺点,本发明实施例采用创建多个媒体数据库:包括不仅分别为每个存储设备的文件系统对应创建一个子数据库,并且多创建一个公共数据库来解决。
    在一些可选的实施例中,提供了一种实现文件扫描和保存的方法。图1是本发明实施例一提供的挂载存储设备的流程示意图。如图1所示,该方法包括:
    步骤S101,挂载存储设备;
    步骤S102,对该存储设备进行扫描;
    步骤S103,获取该存储设备的文件系统的通用唯一标识符UUID;
    步骤S104,判断系统中是否有与UUID对应的子数据库;若有,则打开公共数据库、以及与存储设备对应的子数据库;
    步骤S105,验证与当前存储设备对应的子数据库中的记录的有效性;
    步骤S106,遍历存储设备中的每个文件,获取所述存储设备中的每个文件的信息;
    步骤S107,遍历完之后,查询子数据库中关于该存储设备的所有记录,然后将查询到的记录插入至公共数据库中;
    步骤S108,结束扫描。
    在一些可选的实施例中,子数据库,用于备份记录一个对应的存储设备的文件信息,app不可访问;每个存储设备上的文件系统对应系统中的一个子数据库;子数据库仅由本系统进行操作和控制;
    公共数据库,用于记录当前所有挂载的存储设备的文件信息,还用于供其它应用程序app访问和操作。
    在一些可选的实施例中,还提供了一种实现文件扫描和保存的方法。图1是本发明实施例一提供的挂载存储设备的流程示意图。如图1所示,该方法包括:
    步骤S101,挂载存储设备,系统发出挂载广播,启动扫描器;
    步骤S102,扫描器收到挂载广播后,对该存储设备进行扫描;
    步骤S103,获取该存储设备的文件系统的通用唯一标识符UUID;
    步骤S104,判断系统中是否有与UUID对应的子数据库;若有,说明之前挂载过该存储设备,则打开公共数据库、与存储设备对应的子数据库;
    可选地,若没有与UUID对应的子数据库,则先检查现有子数据库的数量:当现有子数据库的数量大于或等于指定数量时,则对最近未使用的子数据库进行删除,然后创建与存储设备对应的子数据库,并保存该子数据库,再打开与该子数据库和公共数据库;当现有子数据库的数量小于指定数量时,则直接创建与该存储设备对应的子数据库,并保存,再打开与该子数据库和公共数据库。
    可选地,子数据库,用于备份记录一个对应的存储设备的文件系统中文件信息,app不可访问;每个存储设备上的文件系统对应系统中的一个子数据库;子数据库仅由本系统进行操作和控制;
    公共数据库,用于记录当前所有挂载的存储设备的文件系统中的文件信息,还用于供其它应用程序app访问和操作。
    子数据库和公共数据库的表结构相同。
    步骤S105,验证与当前存储设备对应的子数据库中的记录的有效性;
    可选地,可以根据查询子数据库中的所有记录的属性来验证;
    其中,属性至少包括:文件的存放位置和文件的最后修改时间。
    可选地,若文件的存放位置属性所对应的文件存在,并且文件的最后修改时间没有变化,说明存储设备中确实有该文件,则表示该记录有效,继续检查下一条记录。
    可选地,若文件的存放位置属性所对应的文件不存在,说明所属存储设备中已经没有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录。
    可选地,若文件的存放位置属性所对应的文件存在,但是文件的最后修改时间有变化,说明该文件已被修改,该记录保存的文件信息不正确了,则删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。
    步骤S106,遍历存储设备中的每个文件,获取存储设备中的每个文件的信息;
    可选地,当遍历得到一个文件,查看该子数据库中是否有关于该文件的记录;若没有,则获取该文件信息,并将获取到的文件信息保存至该子数据库中,然后继续遍历直到遍历完成,若有,则继续遍历下一个文件。
    步骤S107,遍历完之后,查询子数据库中关于该存储设备的所有记录,然后将查询到的记录插入至公共数据库中;
    步骤S108,结束扫描。
    可选的,当扫描完成,通知其它程序。
    可选地,如果同时挂载多个存储设备,系统发出挂载广播,扫描器会根据 收到的挂载的广播,开始对每个存储设备按挂载的顺序执行扫描;并且针对每一个存储设备对应创建一个与其UUID号对应的子数据库,并存储。
    上述实施例是针对挂载存储设备提供的方法,在一些可选的实施例中,还提供了一种实现文件扫描和保存的方法。图2是本发明实施例一提供的卸载存储设备的流程示意图。如图2所示,该方法包括以下步骤:
    步骤S201,移除或卸载存储设备;
    步骤S202,收到移除或卸载广播,系统发出移除或卸载广播;
    步骤S203,多媒体内容提供器会根据收到的移除或卸载广播,删除公共数据库中所有关于该存储设备的记录;
    步骤S204,关闭与该存储设备对应的子数据库。
    如果同时移除或卸载多个存储设备,系统发出移除或卸载的广播,多媒体内容提供器会根据收到的移除或卸载的广播,开始按移除或卸载的顺序删除公共数据库中所有关于每个被移除或卸载的存储设备的记录,并且关闭与每个被移除或卸载的存储设备对应的子数据库。
    可选的,当再次挂载之前已经挂载过的存储设备时,系统发出挂载广播;扫描器接收到的挂载广播后,只需要打开与该存储设备对应的子数据库,对该子数据库中的信息进行更新,然后将该子数据库中的记录全部插入至公共数据库中,供apk访问。
    在一些可选的实施例中,还提供了一种实现文件扫描和保存的方法。如图3所示,包括:
    步骤S301,挂载存储设备A,系统发出挂载广播;
    步骤S302,启动mediascanner;mediascanner收到挂载广播后,先对存储设备A进行扫描;
    步骤S303,获取存储设备A的ntfs文件系统的通用唯一标识符UUID,该UUID为1234;
    步骤S304,判断系统中是否有与UUID为1234对应的名为external-1234.db的子数据库;若有,说明之前挂载过该存储设备A,则打开名 为external.db的公共数据库,以及与存储设备A对应的和名为external-1234.db的子数据库;
    可选地,若没有与UUID为1234对应的名为external-1234.db的子数据库,则说明该存储设备A是首次挂载,则先检查现有的子数据库的数量:当现有子数据库的数量大于或等于指定数量(例如5)时,则对最近未使用的子数据库进行删除,然后创建与存储设备A对应的名为external-1234.db的子数据库并保存,再打开该子数据库和名为external.db的公共数据库;当现有子数据库的数量小于指定数量时,则直接创建与存储设备A对应的名为external-1234.db的子数据库并保存,再打开该子数据库和名为external.db的公共数据库。
    名为external-1234.db的子数据库,负责保存与存储设备A对应文件系统中的文件信息,由本系统的mediascanner和mediaprovider控制,其它应用程序app无法对它操作,其它app不可访问;每个存储设备上的文件系统对应系统中的一个子数据库;
    名为external.db的公共数据库,负责记录所有已挂载文件系统的文件信息,方便app去访问。
    子数据库和公共数据库的表结构相同。
    即每个存储设备上的文件系统对应一个多媒体数据库,通过文件系统的UUID(唯一标识符)来一一对应地创建数据库,例如ntfs文件系统存储设备A的UUID为1234,则它对应的数据库名设计为external-1234.db,该external-1234.db只记录有关存储设备A中的文件信息;另外再创建一个名为external.db的公共数据库来记录当前所有挂载设备中的文件信息,方便app访问,使得应用程序app一次性就可以访问所有设备中的文件信息,符合按照android SDK开发的apk。当卸载设备A时,mediaprovider接收到EJECT广播,只删除external.db数据库中有关设备A的记录信息,并且关闭设备A对应的external-1234.db.当再次挂载设备A时,mediascanner接收到MOUNT广播后,只需要打开数据库external-1234.db,对externa-1234.db中的信息进行更新,然后将external-1234.db中的记录全部插入至external.db数据库中供apk访问。
    步骤S305,mediascanner验证当前名为external-1234.db的子数据库中的 记录的有效性。
    具体地,可以根据查询该子数据库中的所有记录的属性来验证。
    其中,该属性至少包括:属性_data(文件的存放位置)和属性lastModified(文件的最后修改时间)。有以下几种情况:
    若属性_data所对应的文件存在,并且lastModified没有变化,说明存储设备A中确实有该文件,则表示该记录有效,继续检查下一条记录。
    若属性_data所对应的文件不存在,说明所属存储设备A中已经没有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录。
    若属性_data所对应的文件存在,但是lastModified有变化,说明该文件已被修改,该记录保存的文件信息不正确了,也删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。
    步骤S306,遍历扫描存储设备A中的每个文件,获取存储设备A中的每个文件的信息;
    可选地,当遍历得到一个文件,查看该子数据库中是否有关于该文件的记录;若没有,则获取该文件信息,并将获取到的文件信息保存至名为external-1234.db的子数据库中,然后继续遍历直到遍历完成,若有,则继续遍历下一个文件。
    步骤S307,遍历完之后,查询名为external-1234.db的子数据库中关于存储设备A的所有记录,然后将查询到的记录保存至公共数据库external.db中,供apk访问;
    步骤S308,结束扫描。
    可选的,当扫描完成,通知其它程序。
    可选地,如果同时挂载多个存储设备:存储设备A、存储设备B和存储设备C逐个挂载,mediascanner会根据收到的挂载广播,开始对每个存储设备按照挂载的顺序执行扫描,先扫描存储设备A,再扫描存储设备B,再扫描存储设备C;并且针对每一个存储设备对应创建一个与其UUID号对应的子数据库,并存储。
    如图4所示,当需要移除或卸载该存储设备A时,包括以下步骤:
    步骤S401,移除或卸载存储设备A;
    步骤S402,多媒体内容提供器mediaprovider接收到移除或卸载的EJECT广播;
    步骤S403,只删除公共数据库external.db数据库中有关存储设备A的所有记录信息;
    步骤S404,关闭与该存储设备A对应的名为external-1234.db的子数据库。
    当再次挂载设备A时,包括以下步骤:mediascanner接收到MOUNT挂载广播后,只需要打开名为external-1234.db的子数据库,对该数据库中的信息进行更新,然后将名为external-1234.db的子数据库中的记录全部导入至名为external.db的公共数据库中,供apk访问。
    采用本发明实施例提供的方案,使用户可以快速访问到经常在该andriod设备上使用的存储设备中的文件信息,并且可以根据andriod SDK开发的apk不需要做修改就可以正常访问数据库,对于各种存储设备具有很好的通用性。
    在一些可选的实施例中,还提供了一种实现文件扫描和保存的方法。
    步骤S501,先挂载存储设备A,再挂载存储设备B,系统发出挂载广播;
    步骤S502,系统当收到挂载广播后,启动mediascanner对存储设备A进行扫描;
    步骤S503,获取存储设备A的ntfs文件系统的通用唯一标识符UUID,该UUID为1234;
    步骤S504,判断系统中是否有与UUID为1234对应的名为external-1234.db的子数据库;若有,说明之前挂载过该存储设备A,则打开名为external.db的公共数据库,以及与存储设备A对应的和名为external-1234.db的子数据库;
    可选地,若没有与UUID为1234对应的名为external-1234.db的子数据库,则说明该存储设备A是首次挂载,则先检查现有的子数据库的数量:当现有子数据库的数量大于或等于指定数量(例如4)时,则对最近未使用的子数据库进行删除,然后创建与存储设备A对应的名为external-1234.db的子数据库并保存,再打开该子数据库和名为external.db的公共数据库;当现有子数据库的数量小于指定数量时,则直接创建与存储设备A对应的名为external-1234.db的 子数据库并保存,再打开该子数据库和名为external.db的公共数据库。
    步骤S505,mediascanner验证当前名为external-1234.db的子数据库中的记录的有效性。
    具体地,可以根据查询该子数据库中的所有记录的属性来验证。
    其中,该属性至少包括:属性_data(文件的存放位置)和属性lastModified(文件的最后修改时间)。有以下几种情况:
    若属性_data所对应的文件存在,并且lastModified没有变化,说明存储设备A中确实有该文件,则表示该记录有效,继续检查下一条记录。
    若属性_data所对应的文件不存在,说明所属存储设备A中已经没有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录。
    若属性_data所对应的文件存在,但是lastModified有变化,说明该文件已被修改,该记录保存的文件信息不正确了,也删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。
    步骤S506,遍历存储设备A中的每个文件,获取存储设备A中的每个文件的信息;
    可选地,当遍历得到一个文件,查看该子数据库中是否有关于该文件的记录;若没有,则获取该文件信息,并将获取到的文件信息保存至名为external-1234.db的子数据库中,然后继续遍历直到遍历完成,若有,则继续遍历下一个文件。
    名为external-1234.db的子数据库,负责保存与存储设备A对应文件系统中的文件信息,由mediascanner控制,其它应用程序app无法对它操作,其它app不可访问;每个存储设备上的文件系统对应系统中的一个子数据库;
    步骤S507,遍历完之后,查询名为external-1234.db的子数据库中关于存储设备A的所有记录,然后将查询到的记录插入至公共数据库external.db中,供apk访问;
    步骤S508,结束扫描存储设备A;
    步骤S509,启动mediascanner对存储设备B进行扫描;
    步骤S510,获取存储设备B的ntfs文件系统的通用唯一标识符UUID为5678;
    步骤S511,判断系统中是否有与UUID为5678对应的名为external-5678.db的子数据库;若有,说明之前挂载过该存储设备B,则打开名为external.db的公共数据库,以及与存储设备B对应的名为external-5678.db的子数据库;
    若没有与UUID为5678对应的名为external-5678.db的子数据库,说明该存储设备B是首次挂载,则先检查现有的子数据库的数量:当现有子数据库的数量大于或等于指定数量(例如6)时,则对最近未使用的子数据库进行删除,然后创建与存储设备B对应的名为external-5678.db的子数据库并保存,再打开该子数据库和名为external.db的公共数据库;当现有子数据库的数量小于指定数量时,则直接创建与存储设备B对应的名为external-5678.db的子数据库并保存,再打开该子数据库和名为external.db的公共数据库。
    名为external-5678.db的子数据库,负责保存与存储设备B对应文件系统中的文件信息,由mediascanner控制,其它应用程序app无法对它操作,其它app不可访问;每个存储设备上的文件系统对应系统中的一个子数据库;
    名为external.db的公共数据库,负责记录所有已挂载存储设备A和存储设备B的文件系统的文件信息,方便app去访问。
    子数据库和公共数据库的表结构相同。
    步骤S512,mediascanner验证当前名为external-5678.db的子数据库中的记录的有效性,可以根据查询该子数据库中的所有记录的属性来验证,属性至少包括:属性_data(文件的存放位置)和属性lastModified(文件的最后修改时间)。有以下几种情况:
    若属性_data所对应的文件存在,并且lastModified没有变化,说明存储设备B中确实有该文件,则表示该记录有效,继续检查下一条记录。
    若属性_data所对应的文件不存在,说明所属存储设备B中已经没有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录。
    若属性_data所对应的文件存在,但是lastModified有变化,说明该文件已被修改,该记录保存的文件信息不正确了,则删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。
    步骤S513,遍历存储设备B中的每个文件,获取存储设备B中的每个文件 的信息;
    可选地,当遍历得到一个文件,查看该子数据库中是否有关于该文件的记录,若没有,则获取该文件信息,并将获取到的文件信息保存至名为external-5678.db的子数据库中,然后继续遍历直到遍历完成,若有,则继续遍历下一个文件。
    步骤S514,遍历完之后,查询名为external-5678.db的子数据库中关于存储设备B的所有记录,然后将查询到的记录插入至公共数据库external.db中,供apk访问;
    步骤S515,结束扫描存储设备B。
    可选的,当扫描完成,通知其它程序。
    采用本发明实施例提供的方案,使用户可以快速访问到经常在该andriod设备上使用的存储设备中的文件信息,并且可以根据andriod SDK开发的apk不需要做修改就可以正常访问数据库,对于各种存储设备具有很好的通用性。
    在一些可选的实施例中,提供了一种实现文件扫描和保存的装置。图5是本发明实施例提供的一种实现文件扫描和保存的装置的结构示意图。如图5所示,该装置包括:扫描???1、判别???2、验证???3、遍历???4、获取文件信息???5和查询???6;其中,
    扫描???1,用于对挂载的存储设备进行扫描,并获取存储设备的通用唯一标识符UUID;
    判别???2,用于判断系统中是否有与UUID对应的子数据库;若有,则打开公共数据库,以及与存储设备对应的子数据库;
    验证???3,用于验证与当前存储设备对应的子数据库中的记录的有效性;
    遍历???4,用于遍历存储设备中的每个文件;
    获取文件信息???5,用于获取存储设备中的每个文件的信息;和,
    查询???6,用于查询子数据库中关于该存储设备的所有记录,然后将查询到的记录插入公共数据库中。
    在一些可选的实施例中,如图6所示,该装置还包括创建???7;
    判别???2,判别若没有与UUID对应的子数据库,则先检查现有子数据 库的数量;当现有子数据库的数量大于指定数量时,则对最近未使用的子数据库进行删除,然后通知创建???7;当现有子数据库的数量小于指定数量时,则直接通知创建???7;
    创建???7,用于创建与存储设备对应的子数据库,并保存;
    然后所述判别???,再打开公共数据库,以及与创建???7创建的子数据库。
    其中,子数据库,用于备份记录一个对应的存储设备的文件信息,每个存储设备上的文件系统对应系统中的一个子数据库;所述子数据库仅由本装置的系统进行操作和控制;
    公共数据库,用于记录当前所有挂载的存储设备的文件信息,还用于供其它应用程序访问和操作。
    可选的,验证???3,具体用于根据查询子数据库中的所有记录的属性来验证当前子数据库中的记录的有效性,属性至少包括:文件的存放位置和文件的最后修改时间。具体包括以下几种情况:
    若文件的存放位置属性所对应的文件存在,并且文件的最后修改时间没有变化,说明存储设备中确实有该文件,则表示该记录有效,继续检查下一条记录;
    若文件的存放位置属性所对应的文件不存在,说明所属存储设备中已经没有该文件,则表示该记录无效,此时将该记录删除,继续检查下一条记录;
    若文件的存放位置属性所对应的文件存在,但是文件的最后修改时间有变化,说明该文件已被修改,该记录保存的文件信息不正确了,则删除该记录,等待之后的扫描来对该文件的信息进行重新保存,继续检查下一条记录。
    可选的,当遍历???4,遍历得到一个文件,查看该子数据库中是否有关于该文件的记录;若没有,则获取该文件信息,并将获取到的文件信息保存至该子数据库中,然后继续遍历直到遍历完成,若有,则跳过获取文件信息???,继续遍历下一个文件。
    该装置还可能包括:通知???8(图中未画出),用于当扫描完成,通知其它程序。
    如果同时挂载多个存储设备,系统发出挂载广播,扫描???1会根据收到 的挂载的广播,开始对每个存储设备按挂载的顺序执行扫描;创建???7,针对每一个存储设备分别对应创建一个与该存储设备的UUID号对应的子数据库,并存储。
    可选的,该装置还包括卸载???9(图中未画出),当移除或卸载存储设备时,系统发出移除或卸载广播,卸载???9收到移除或卸载广播,删除公共数据库中所有关于该存储设备的记录,并且关闭与该存储设备对应的子数据库。
    如果同时移除或卸载多个存储设备,系统发出移除或卸载的广播,卸载???9会根据收到的移除或卸载的广播,开始按移除或卸载的顺序删除所述公共数据库中所有关于每个存储设备的记录,并且关闭与每个被移除或卸载的存储设备对应的子数据库。
    采用本发明实施例提供的方案,使用户可以快速访问到经常在该andriod设备上使用的存储设备中的文件信息,并且可以根据andriod SDK开发的apk不需要做修改就可以正常访问数据库,对于各种存储设备具有很好的通用性。
    除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储设备内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储设备、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
    应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例?;谏杓破?,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的?;し段У那榭鱿碌玫街匦掳才?。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
    在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求?;さ闹魈獾氖凳┓桨感枰宄卦诿扛鋈ɡ笾兴率龅奶卣鞲嗟奶卣?。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全 部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
    本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、???、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、???、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的?;し段?。
    结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件??榛蚱渥楹?。软件??榭梢晕挥赗AM存储设备、闪存、ROM存储设备、EPROM存储设备、EEPROM存储设备、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
    对于软件实现,本申请中描述的技术可用执行本申请所述功能的???例如,过程、函数等)来实现。这些软件代码可以存储在存储设备单元并由处理器执行。存储设备单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
    上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的?;し段诘乃姓庋母谋?、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

    关于本文
    本文标题:一种实现文件扫描和保存的方法及装置.pdf
    链接地址://www.4mum.com.cn/p-6147378.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 11选5万能6码聪明组合 北京时时是正规的 双人夺宝时时彩 微信收款神码一天收100笔 御彩轩计划软件免费版 七乐彩中4个号多少钱 七星彩历史开奖全查询 北京pk10四码计划 北京pk 10 pk10计划软件秒速版 重庆老时时开奖360 11选5直选二稳赚技巧 超神冠军单双计划 分分什么软件计划比较稳 龙江风采22选5坐标走势图 超级大乐透开门彩