CN110825700A - 一种高效扫描磁盘中文件的方法 - Google Patents
一种高效扫描磁盘中文件的方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
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系统。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112954011A (zh) * | 2021-01-27 | 2021-06-11 | 上海淇玥信息技术有限公司 | 一种图像资源压缩方法、装置和电子设备 |
Citations (5)
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 |
-
2019
- 2019-11-07 CN CN201911083113.1A patent/CN110825700A/zh active Pending
Patent Citations (5)
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)
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 |