CN110825700A - 一种高效扫描磁盘中文件的方法 - Google Patents

一种高效扫描磁盘中文件的方法 Download PDF

Info

Publication number
CN110825700A
CN110825700A CN201911083113.1A CN201911083113A CN110825700A CN 110825700 A CN110825700 A CN 110825700A CN 201911083113 A CN201911083113 A CN 201911083113A CN 110825700 A CN110825700 A CN 110825700A
Authority
CN
China
Prior art keywords
folder
scanning
file
thread pool
executing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911083113.1A
Other languages
English (en)
Inventor
赵是吉
徐滢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Pinguo Technology Co Ltd
Original Assignee
Chengdu Pinguo Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Pinguo Technology Co Ltd filed Critical Chengdu Pinguo Technology Co Ltd
Priority to CN201911083113.1A priority Critical patent/CN110825700A/zh
Publication of CN110825700A publication Critical patent/CN110825700A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种高效扫描磁盘中文件的方法,属于电子设备文件管理方法领域,本发明扫描时每个文件夹都单独开一个线程来扫描,采用线程队列的方式来管理,如果线程池当前线程数量已经到达峰值,那么后面进来的文件夹扫描线程排队等待,如果线程池有空闲资源,立马让队头出列,加入线程池开始扫描。这种方式可以最大化利用系统资源,提升文件扫描速度。

Description

一种高效扫描磁盘中文件的方法
技术领域
本发明涉及电子设备文件管理方法领域,尤其涉及一种高效扫描磁盘中文件的方法。
背景技术
在开发相册应用或者文件管理器时,文件扫描是必不可少的,虽然在Android系统中提供了多媒体数据库,可以快速地获取磁盘中的媒体文件,但是受权限限制,多媒体数据的文件目录并不完整,而且新增或删除文件时更新不及时,所以Android系统提供的多媒体数据库并不能满足我们的需求,
现有技术中,扫描方法注药有以下两种:
1、递归扫描:对文件夹进行逐个扫描,其优点为准确度高,但是该技术效率极其低下,如果文件夹嵌套比较多的话,扫描效率明显下降;
2、使用Android多媒体数据库,其优点为效率高,但是该技术文件内容不够准确,新增或删除文件时更新不及时,而且该方案只能用于Android系统。
发明内容
本发明旨在提供一种高效扫描磁盘中文件的方法,能够最大化调度系统资源,在保证结果准确的同时也达到快速扫描全盘文件的需求。
为达到上述目的,本发明是采用以下技术方案实现的:
本发明公开一种高校扫描磁盘中文件的方法,包括以下步骤:
a、获取根目录下所有的内容文件,判断内容文件的类型属于文件或文件夹,若内容文件的类型为文件,则执行步骤e,
若内容文件的类型为文件夹,则执行步骤b;
b、将获得的文件夹依次送入文件夹扫描队列尾部;
c、判断线程池是否有空闲资源,
若线程池有空闲资源,安排文件夹扫描队列中处于列头的文件夹进入线程池进行扫描,执行步骤d,
若线程池没有空闲资源,安排文件夹扫描队列等待,执行步骤c;
d、扫描进入线程池内的文件夹,判断文件夹下的内容文件的类型属于文件或文件夹,
若内容文件的类型为文件,则执行步骤e,
若内容文件的类型为文件夹,则执行步骤b;
e、对文件进行处理。
优选的,步骤d中,扫描每个文件夹均单独使用一个线程。
优选的,步骤c中,通过监测线程池中的线程数量峰值判断线程池是否有空闲资源。
优选的,应用环境为ios系统。
本发明的有益效果:
本发明扫描时每个文件夹都单独开一个线程来扫描,采用线程队列的方式来管理,如果线程池当前线程数量已经到达峰值,那么后面进来的文件夹扫描线程排队等待,如果线程池有空闲资源,立马让队头出列,加入线程池开始扫描。这种方式可以最大化利用系统资源,提升文件扫描速度。
附图说明
图1为本发明的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。
如图1所示,本发明包括以下步骤:
a、获取根目录下所有的内容文件,判断内容文件的类型属于文件或文件夹,若内容文件的类型为文件,则执行步骤e,
若内容文件的类型为文件夹,则执行步骤b;
b、将获得的文件夹依次送入文件夹扫描队列尾部;
c、判断线程池是否有空闲资源,
若线程池有空闲资源,安排文件夹扫描队列中处于列头的文件夹进入线程池进行扫描,执行步骤d,
若线程池没有空闲资源,安排文件夹扫描队列等待,执行步骤c;
d、扫描进入线程池内的文件夹,判断文件夹下的内容文件的类型属于文件或文件夹,
若内容文件的类型为文件,则执行步骤e,
若内容文件的类型为文件夹,则执行步骤b;
e、对文件进行处理,如判断文件类型为图片、文档或音频等处理方法。
步骤d中,扫描每个文件夹均单独使用一个线程。
步骤c中,通过监测线程池中的线程数量峰值判断线程池是否有空闲资源,
可以通过设置阈值,即当监测的线程数量峰值高于或等于设定的阈值时判定为无空闲资源,
而当监测的线程数量峰值低于设定的阈值时判定为有空闲资源。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (4)

1.一种高效扫描磁盘中文件的方法,其特征在于,包括以下步骤:
a、获取根目录下所有的内容文件,判断内容文件的类型属于文件或文件夹,
若内容文件的类型为文件,则执行步骤e,
若内容文件的类型为文件夹,则执行步骤b;
b、将获得的文件夹依次送入文件夹扫描队列尾部;
c、判断线程池是否有空闲资源,
若线程池有空闲资源,安排文件夹扫描队列中处于列头的文件夹进入线程池进行扫描,执行步骤d,
若线程池没有空闲资源,安排文件夹扫描队列等待,执行步骤c;
d、扫描进入线程池内的文件夹,判断文件夹下的内容文件的类型属于文件或文件夹,
若内容文件的类型为文件,则执行步骤e,
若内容文件的类型为文件夹,则执行步骤b;
e、对文件进行处理。
2.根据权利要求1所述的高校扫描磁盘中文件的方法,其特征在于:步骤d中,扫描每个文件夹均单独使用一个线程。
3.根据权利要求1所述的高校扫描磁盘中文件的方法,其特征在于:步骤c中,通过监测线程池中的线程数量峰值判断线程池是否有空闲资源。
4.根据权利要求1所述的高校扫描磁盘中文件的方法,其特征在于:应用环境为ios系统。
CN201911083113.1A 2019-11-07 2019-11-07 一种高效扫描磁盘中文件的方法 Pending CN110825700A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911083113.1A CN110825700A (zh) 2019-11-07 2019-11-07 一种高效扫描磁盘中文件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911083113.1A CN110825700A (zh) 2019-11-07 2019-11-07 一种高效扫描磁盘中文件的方法

Publications (1)

Publication Number Publication Date
CN110825700A true CN110825700A (zh) 2020-02-21

Family

ID=69553257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911083113.1A Pending CN110825700A (zh) 2019-11-07 2019-11-07 一种高效扫描磁盘中文件的方法

Country Status (1)

Country Link
CN (1) CN110825700A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112954011A (zh) * 2021-01-27 2021-06-11 上海淇玥信息技术有限公司 一种图像资源压缩方法、装置和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722417A (zh) * 2012-06-07 2012-10-10 腾讯科技(深圳)有限公司 一种扫描任务的分配方法和装置
CN103258018A (zh) * 2013-04-27 2013-08-21 北京金和软件股份有限公司 一种精确监控目录文件夹中文件变化的文件同步方法
CN105718315A (zh) * 2016-02-17 2016-06-29 中国农业银行股份有限公司 一种任务处理方法及服务器
CN106227751A (zh) * 2016-07-14 2016-12-14 青岛海信电器股份有限公司 一种存储文件的扫描方法和扫描设备
WO2019197877A1 (en) * 2018-04-11 2019-10-17 Pratik Sharma Avoiding sequential flooding in database buffer

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102722417A (zh) * 2012-06-07 2012-10-10 腾讯科技(深圳)有限公司 一种扫描任务的分配方法和装置
CN103258018A (zh) * 2013-04-27 2013-08-21 北京金和软件股份有限公司 一种精确监控目录文件夹中文件变化的文件同步方法
CN105718315A (zh) * 2016-02-17 2016-06-29 中国农业银行股份有限公司 一种任务处理方法及服务器
CN106227751A (zh) * 2016-07-14 2016-12-14 青岛海信电器股份有限公司 一种存储文件的扫描方法和扫描设备
WO2019197877A1 (en) * 2018-04-11 2019-10-17 Pratik Sharma Avoiding sequential flooding in database buffer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112954011A (zh) * 2021-01-27 2021-06-11 上海淇玥信息技术有限公司 一种图像资源压缩方法、装置和电子设备
CN112954011B (zh) * 2021-01-27 2023-11-10 上海淇玥信息技术有限公司 一种图像资源压缩方法、装置和电子设备

Similar Documents

Publication Publication Date Title
WO2020073687A1 (zh) 流式数据列存储方法、装置、设备和存储介质
US11374995B2 (en) Multimedia file processing
US8996500B2 (en) Using temporary performance objects for enhanced query performance
US8078628B2 (en) Streaming faceted search
CN104427292A (zh) 会议纪要的提取方法及装置
CN112925661A (zh) 消息处理方法、装置、计算机设备及存储介质
CN105357280B (zh) 一种基于hdfs的文件溯源ftp系统
CN106484425B (zh) 一种基于策略配置的异常处理方法
CN105989048A (zh) 一种数据记录处理方法、设备及系统
EP3869324A3 (en) Voice data processing method, apparatus, storage medium and computer program product
CN110825700A (zh) 一种高效扫描磁盘中文件的方法
US8600990B2 (en) Interacting methods of data extraction
CN112307318A (zh) 一种内容发布方法、系统及装置
US8510426B2 (en) Communication and coordination between web services in a cloud-based computing environment
CN112911332B (zh) 用于从直播视频流剪辑视频的方法、装置、设备和存储介质
CN110555117B (zh) 一种数据处理方法、装置及电子设备
CN116089545B (zh) 一种采集存储介质变更数据入数据仓库的方法
CN105183854A (zh) 一种数据库卸载数据的调度方法
CN109769027B (zh) 一种消息推送方法、装置及设备
CN110471896B (zh) 一种数据处理方法、系统及服务器
CN109389999B (zh) 一种高性能的音视频自动断句方法和系统
CN111376255A (zh) 机器人数据采集方法、装置及终端设备
CN112948410A (zh) 数据处理方法、装置、设备及介质
CN113645499A (zh) 一种基于云端的视频剪辑方法
CN109063201B (zh) 一种基于混合存储方案的impala在线交互式查询方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200221

RJ01 Rejection of invention patent application after publication