CN113360462B - 一种文件处理方法、装置、设备及可读存储介质 - Google Patents
一种文件处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN113360462B CN113360462B CN202110911019.1A CN202110911019A CN113360462B CN 113360462 B CN113360462 B CN 113360462B CN 202110911019 A CN202110911019 A CN 202110911019A CN 113360462 B CN113360462 B CN 113360462B
- Authority
- CN
- China
- Prior art keywords
- file
- folder
- stream
- generating
- traversing
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012216 screening Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002699 waste material 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
- G06F16/162—Delete operations
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Abstract
本申请公开了一种文件处理方法、装置、设备及可读存储介质,方法包括:判断接收到的文件访问路径是否存在;若存在则判断文件访问路径对应的是否为文件夹;若是则生成文件夹流,对文件夹流进行遍历,生成与文件夹流对应的文件对象;将文件对象存储到内存中,根据文件对象获取对应文件的大小,检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将文件对应的文件对象从内存中删除;根据文件夹中各文件的大小获取文件夹文件总大小。本申请公开的技术方案,通过生成文件夹流并对其进行遍历而实现对文件逐个进行遍历,以避免内存被占满,且将满足条件的文件对象从内存中删除,以实现对内存的及时清理,从而尽量避免出现内存溢出。
Description
技术领域
本申请涉及文件处理技术领域,更具体地说,涉及一种文件处理方法、装置、设备及可读存储介质。
背景技术
在AI(Artificial Intelligence,人工智能)、磁盘大小统计等场景中,需要获取文件大小,以便于给文件预设置一些空间等,以使得有足够的空间进行文件的存储等。
目前,在对海量小文件进行统计时,一般是一次性遍历所有文件,并对每个文件均生成一个文件对象,且把文件对象加载到内存中,以在内存中获取海量小文件的总大小,但是,由于文件量比较大,采用上述方式进行文件大小的统计会把JVM(Java VirtualMachine,内存虚拟机)内存占满,从而产生内存溢出,最终造成文件系统不可用。
综上所述,如何避免产生内存溢出,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种文件处理方法、装置、设备及可读存储介质,用于避免产生内存溢出。
为了实现上述目的,本申请提供如下技术方案:
一种文件处理方法,包括:
接收文件访问路径,判断所述文件访问路径是否存在;
若存在,则判断所述文件访问路径对应的是否为文件夹;
若是文件夹,则根据所述文件夹生成文件夹流,并对所述文件夹流进行遍历,且生成与所述文件夹流对应的文件对象;
将所述文件对象存储到内存中,根据所述文件对象获取对应文件的大小,并检测所述文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将所述文件对应的文件对象从所述内存中删除;
根据所述文件夹中各文件的大小,获取所述文件夹文件总大小。
优选的,在生成文件夹流之前,还包括:
判断所述文件夹中是否存在子文件夹;
若是,则从所述文件夹中筛选出所述子文件夹;
相应地,根据所述文件夹生成文件夹流,并对所述文件夹流进行遍历,包括:
根据所述文件夹中与所述子文件夹位于同一层级的文件生成文件夹流;
根据所述子文件夹中包含的文件生成子文件夹流;
对所述文件夹流进行遍历,且在完成对所述文件夹流的遍历后对所述子文件夹流进行遍历。
优选的,在生成文件夹流之后,还包括:
根据所述文件夹流生成迭代器;
相应地,对所述文件夹流进行遍历,包括:
利用所述迭代器对所述文件夹流进行遍历。
优选的,若确定所述文件访问路径对应是访问文件,则还包括:
生成与所述访问文件对应的文件对象,并将与所述访问文件对应的文件对象存储到所述内存中,且根据与所述访问文件对应的文件对象获取所述访问文件的大小。
优选的,在对所述文件夹流进行遍历时,还包括:
判断所述文件夹流中的文件是否为有效文件;
若是,则执行在遍历时生成与所述文件夹流对应的文件对象的步骤。
优选的,若确定所述文件访问路径不存在,则还包括:
发出文件访问路径错误的提示。
一种文件处理装置,包括:
接收模块,用于接收文件访问路径,判断所述文件访问路径是否存在;
第一判断模块,用于若存在,则判断所述文件访问路径对应的是否为文件夹;
第一生成模块,用于若是文件夹,则根据所述文件夹生成文件夹流,并对所述文件夹流进行遍历,且生成与所述文件夹流对应的文件对象;
删除模块,用于将所述文件对象存储到内存中,根据所述文件对象获取对应文件的大小,并检测所述文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将所述文件对应的文件对象从所述内存中删除;
获取模块,用于根据所述文件夹中各文件的大小,获取所述文件夹文件总大小。
优选的,还包括:
第二判断模块,用于判断所述文件夹中是否存在子文件夹;
筛选模块,用于若所述文件夹中存在子文件夹,则从所述文件夹中筛选出所述子文件夹;
相应地,所述第一生成模块包括:
第一生成单元,用于根据所述文件夹中与所述子文件夹位于同一层级的文件生成文件夹流;
第二生成单元,用于根据所述子文件夹中包含的文件生成子文件夹流;
遍历单元,用于对所述文件夹流进行遍历,且在完成对所述文件夹流的遍历后对所述子文件夹流进行遍历。
一种文件处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的文件处理方法的步骤。
一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的文件处理方法的步骤。
本申请提供了一种文件处理方法、装置、设备及可读存储介质,其中,该方法包括:接收文件访问路径,判断文件访问路径是否存在;若存在,则判断文件访问路径对应的是否为文件夹;若是文件夹,则根据文件夹生成文件夹流,并对文件夹流进行遍历,且生成与文件夹流对应的文件对象;将文件对象存储到内存中,根据文件对象获取对应文件的大小,并检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将文件对应的文件对象从内存中删除;根据文件夹中各文件的大小,获取文件夹文件总大小。
本申请公开的上述技术方案,在文件总大小的统计过程中,通过根据文件访问路径对应的文件夹生成文件夹流,并对文件夹流进行遍历而实现采用流的方式对文件逐个进行遍历,以避免一次性遍历所有文件而导致一次性生成大量的文件对象,从而避免内存被占满,且通过检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,并在确定存在完成遍历且被利用完的已知大小的文件时,将完成遍历且被利用完的已知大小的文件对应的文件对象从内存中删除,以实现对内存的及时清理,从而尽量避免出现内存被占满的情况,进而避免产生内存溢出。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种文件处理方法的流程图;
图2为现有进行文件遍历的示意图;
图3为本申请实施例提供的文件遍历示意图;
图4为本申请实施例提供的文件夹层级关系示意图;
图5为本申请实施例提供的一种文件处理装置的结构示意图;
图6为本申请实施例提供的一种文件处理设备的结构示意图。
具体实施方式
本申请的核心是提供的一种文件处理方法、装置、设备及可读存储介质,用于避免产生内存溢出。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,其示出了本申请实施例提供的一种文件处理方法的流程图,本申请实施例提供的一种文件处理方法,可以包括:
S11:接收文件访问路径,判断文件访问路径是否存在;若是,则执行步骤S12。
在需要获取海量小文件的大小时,可以接收用户上传的文件访问路径,并在接收到文件访问路径后,通过按照文件访问路径进行访问等方式判断文件访问路径是否存在,若确定文件访问路径不存在,则可以发出提示等;若确定文件访问路径存在,则可以执行步骤S12,即可以根据文件访问路径进行文件大小的统计。
S12:判断文件访问路径对应的是否为文件夹;若是,则执行步骤S13。
在确定文件访问路径存在时,则可以根据文件访问路径进行访问,并通过访问判断文件访问路径对应的是文件夹还是文件,若确定文件访问路径对应的是文件,则可以获取该文件的大小。
若确定文件访问路径对应的是文件夹,则可以执行步骤S13,即可以对该文件夹下的文件进行大小的获取和统计。
S13:根据文件夹生成文件夹流,并对文件夹流进行遍历,且生成与文件夹流对应的文件对象。
在确定文件访问路径对应的是文件夹后,则可以在文件夹不为空的情况下根据文件夹生成文件夹流,并对文件夹流进行遍历,其中,文件夹流在此是Java中的一个接口,且文件夹流即为文件夹的流,即对文件夹中所包含的文件进行排队,且在对文件夹流进行遍历时具体是以流的形式对文件夹中所包含的文件依次进行读取,慢慢遍历文件夹中的文件,而并非是一次性读取所有文件。具体可以参见图2和图3,其中,图2示出了现有进行文件遍历的示意图,图3示出了本申请实施例提供的文件遍历示意图,从图中可以看出,本申请在对文件夹进行遍历时是每次仅读取一个文件夹,而现有技术则是一次性把文件夹中的所有文件均读取完。
另外,在对文件夹流进行遍历时,可以生成与文件夹流对应的文件对象,具体地,每读取到一个文件即生成与该文件的文件对象,而非是一次性生成与所有文件对应的文件对象,从而避免一次性把JVM内存吃满,造成内存溢出。其中,需要说明的是,文件对象中包含有文件属性(例如文件大小等)。
需要说明的是,若确定文件夹为空(也即文件夹中并不包含文件时),则直接输出0或者返回文件夹为空的提示。
S14:将文件对象存储到内存中,根据文件对象获取对应文件的大小,并检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将文件对应的文件对象从内存中删除。
在生成文件对象之后,可以将文件对象存储到内存中,以便于后续在进行文件利用时可以通过查看文件对象获取文件属性。
另外,可以根据存储到内存中的文件对象获取与该文件对象对应的文件的大小,并对该文件的大小进行记录和存储。而且还可以实时检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在完成遍历且被利用完的已知大小的文件,则将该文件对应的文件对象从内存中删除,以便于实现对内存的及时清理,从而避免该文件的文件对象一直占用内存而导致内存占用量越来越大,最终出现内存溢出的情况。其中,需要说明的是,前述提及的被利用完指的是被相应程序调用且完成利用后的状态,已知大小具体是根据对应的文件对象进行获取的。
S15:根据文件夹中各文件的大小,获取文件夹文件总大小。
在完成对文件夹流的遍历且根据所有的文件对象获取所有文件的大小之后,可以将文件夹中各文件的大小进行相加,以获取文件加中文件的总大小。
通过上述过程可知,相比于现有技术,本申请采用流的方式依次对文件进行遍历,并及时对内存进行清理,以尽量避免因文件量大而导致JVM内存吃满的情况出现,从而尽量避免产生内存溢出的情况。
本申请公开的上述技术方案,在文件总大小的统计过程中,通过根据文件访问路径对应的文件夹生成文件夹流,并对文件夹流进行遍历而实现采用流的方式对文件逐个进行遍历,以避免一次性遍历所有文件而导致一次性生成大量的文件对象,从而避免内存被占满,且通过检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,并在确定存在完成遍历且被利用完的已知大小的文件时,将完成遍历且被利用完的已知大小的文件对应的文件对象从内存中删除,以实现对内存的及时清理,从而尽量避免出现内存被占满的情况,进而避免产生内存溢出。
本申请实施例提供的一种文件处理方法,在生成文件夹流之前,还可以包括:
判断文件夹中是否存在子文件夹;
若是,则从文件夹中筛选出子文件夹;
相应地,根据文件夹生成文件夹流,并对文件夹流进行遍历,可以包括:
根据文件夹中与子文件夹位于同一层级的文件生成文件夹流;
根据子文件夹中包含的文件生成子文件夹流;
对文件夹流进行遍历,且在完成对文件夹流的遍历后对子文件夹流进行遍历。
在本申请中,在生成文件夹流之前,可以判断文件夹流中是否存在子文件夹,若存在子文件夹,则从文件夹中筛选出子文件夹中,以减少子文件夹对文件夹流生成带来的影响。
在上述基础上,在生成文件夹流时,可以先根据文件夹中与子文件夹位于同一层级的文件生成文件夹流,其中,这里提及的同一层级具体指的是包含在同一文件夹中的子文件夹和文件。另外,还可以根据子文件夹中所包含的文件生成子文件夹流。需要说明的是,若子文件夹中还包括第一子文件夹,则可以先从子文件夹中筛选出第一子文件夹,并根据子文件夹中与第一子文件夹位于同一层级的文件生成子文件夹流,并根据第一子文件夹中包含的文件中生成第一子文件夹流……直至最后的子文件夹仅剩下文件为止且根据所剩余的文件生成对应的子文件夹流。例如:文件夹A中包含子文件夹a,子文件夹a中还包括子文件夹a1,子文件夹a1中仅包含文件,此时,则可以先根据与子文件夹a同属于文件夹这一层级的文件生成文件夹流,然后,可以根据与子文件夹a1同属于子文件夹a的文件生成子文件夹流,之后,可以根据子文件夹a1中包含的文件生成第一子文件夹流,具体可以参见图4,其示出了本申请实施例提供的文件夹层级关系示意图,其中,第一行对应的是文件夹A,第二行对应的文件夹A中所包含的子文件夹a,第三行对应的是子文件夹a中所包含的子文件夹a1,子文件夹a1中仅包含文件。
在上述基础上,在进行遍历时,可以先对文件夹流进行遍历,在完成文件夹流的遍历后可以再对子文件流进行遍历,其中,若子文件夹中包含第一子文件夹,则可以再对第一子文件夹流进行遍历……直至完成对最后一个子文件流的遍历为止。
通过上述过程可以避免出现文件遗漏的情况,且可以避免一次遍历多个文件夹流,从而避免同时将多个文件对象存储到内存中的情况出现,以给内存留出删除和清理的缓冲时间,进而尽量避免出现内存溢出的情况。
本申请实施例提供的一种文件处理方法,在生成文件夹流之后,还可以包括:
根据文件夹流生成迭代器;
相应地,对文件夹流进行遍历,可以包括:
利用迭代器对文件夹流进行遍历。
在生成文件夹流之后,可以根据文件夹流生成迭代器,以利用迭代器对文件夹流进行遍历,从而提高遍历效率。其中,所生成的迭代器具体可为Iterable(是Java中的一个接口),其中,Iterable接口是Java集合大家庭中的一员,便于遍历集合中的所有元素,用于迭代访问集合中的元素。
本申请实施例提供的一种文件处理方法,若确定文件访问路径对应是访问文件,则还可以包括:
生成与访问文件对应的文件对象,并将与访问文件对应的文件对象存储到内存中,且根据与访问文件对应的文件对象获取访问文件的大小。
在本申请中,当确定文件访问路径对应是访问文件而非是文件夹时,则可以直接生成访问文件对应的文件对象,并将文件对象存储到内存中,且根据访问文件对应的文件对象获取访问文件的大小,之后,可以输出访问文件的大小,以便于相关人员可以获取文件访问路径对应的文件大小。另外,可以实时检测访问文件是否被利用完,若是,则将访问文件对应的文件对象从内存中删除,以避免占用内存资源。
本申请实施例提供的一种文件处理方法,在对文件夹流进行遍历时,还可以包括:
判断文件夹流中的文件是否为有效文件;
若是,则执行在遍历时生成与文件夹流对应的文件对象的步骤。
在对文件夹流进行遍历时,还可以判断文件夹流中的文件是否为有效文件,其中,这里提及的有效文件具体指的是非快捷连接的文件(也即并非是快捷方式),若确定是有效文件,则执行在遍历时生成与文件夹流对应的文件对象的步骤,即生成对应的文件对象,并将所生成的文件对象存储到内存中;若确定不是有效文件(也即确定是快捷连接),则可以直接输出0或者可以不对其进行处理而跳过该文件继续对后续文件进行处理。
通过上述过程可以实现仅对有效文件进行处理,以减少时间浪费,提高文件处理效率。
本申请实施例提供的一种文件处理方法,若确定文件访问路径不存在,则还可以包括:
发出文件访问路径错误的提示。
在本申请中,在判断文件访问路径是否存在时,若确定文件访问路径不存在,则可以发出文件访问路径错误的提示,以便于相关人员可以根据提示进行文件访问路径查看和核对,从而便于相关人员能够尽快提供有效的文件访问路径。
本申请实施例还提供了一种文件处理装置,参见图5,其示出了本申请实施例提供的一种文件处理装置的结构示意图,可以包括:
接收模块51,用于接收文件访问路径,判断文件访问路径是否存在;
第一判断模块52,用于若存在,则判断文件访问路径对应的是否为文件夹;
第一生成模块53,用于若是文件夹,则根据文件夹生成文件夹流,并对文件夹流进行遍历,且生成与文件夹流对应的文件对象;
删除模块54,用于将文件对象存储到内存中,根据文件对象获取对应文件的大小,并检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将文件对应的文件对象从内存中删除;
获取模块55,用于根据文件夹中各文件的大小,获取文件夹文件总大小。
本申请实施例提供的一种文件处理装置,还可以包括:
第二判断模块,用于判断文件夹中是否存在子文件夹;
筛选模块,用于若文件夹中存在子文件夹,则从文件夹中筛选出子文件夹;
相应地,第一生成模块53可以包括:
第一生成单元,用于根据文件夹中与子文件夹位于同一层级的文件生成文件夹流;
第二生成单元,用于根据子文件夹中包含的文件生成子文件夹流;
第一遍历单元,用于对文件夹流进行遍历,且在完成对文件夹流的遍历后对子文件夹流进行遍历。
本申请实施例提供的一种文件处理装置,还可以包括:
第二生成模块,用于在生成文件夹流之后,根据文件夹流生成迭代器;
相应地,第一生成模块53可以包括:
第二遍历单元,用于利用迭代器对文件夹流进行遍历。
本申请实施例提供的一种文件处理装置,还可以包括:
第三生成模块,用于若确定文件访问路径对应是访问文件,生成与访问文件对应的文件对象,并将与访问文件对应的文件对象存储到内存中,且根据与访问文件对应的文件对象获取访问文件的大小。
本申请实施例提供的一种文件处理装置,还可以包括:
第三判断模块,用于在对文件夹流进行遍历时,判断文件夹流中的文件是否为有效文件;
执行模块,用于若文件是有效文件,则执行在遍历时生成与文件夹流对应的文件对象的步骤。
本申请实施例提供的一种文件处理装置,还可以包括:
发出提示模块,用于若确定文件访问路径不存在,发出文件访问路径错误的提示。
本申请实施例还提供了一种文件处理设备,参见图6,其示出了本申请实施例提供的一种文件处理设备的结构示意图,可以包括:
存储器61,用于存储计算机程序;
处理器62,用于执行存储器61存储的计算机程序时可实现如下步骤:
接收文件访问路径,判断文件访问路径是否存在;若存在,则判断文件访问路径对应的是否为文件夹;若是文件夹,则根据文件夹生成文件夹流,并对文件夹流进行遍历,且生成与文件夹流对应的文件对象;将文件对象存储到内存中,根据文件对象获取对应文件的大小,并检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将文件对应的文件对象从内存中删除;根据文件夹中各文件的大小,获取文件夹文件总大小。
本申请实施例还提供了一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
接收文件访问路径,判断文件访问路径是否存在;若存在,则判断文件访问路径对应的是否为文件夹;若是文件夹,则根据文件夹生成文件夹流,并对文件夹流进行遍历,且生成与文件夹流对应的文件对象;将文件对象存储到内存中,根据文件对象获取对应文件的大小,并检测文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将文件对应的文件对象从内存中删除;根据文件夹中各文件的大小,获取文件夹文件总大小。
该可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的一种文件处理装置、设备及可读存储介质中相关部分的说明可以参见本申请实施例提供的一种文件处理方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、 “包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种文件处理方法,其特征在于,包括:
接收文件访问路径,判断所述文件访问路径是否存在;
若存在,则判断所述文件访问路径对应的是否为文件夹;
若是文件夹,则根据所述文件夹生成文件夹流,并对所述文件夹流进行遍历,且生成与所述文件夹流对应的文件对象;所述文件夹流为对所述文件夹中包含的文件进行排队生成的;对所述文件夹流进行遍历,且生成与所述文件夹流对应的文件对象,包括:对所述文件夹中包含的文件依次进行读取,每读取一个文件,则生成与该文件对应的文件对象;
将所述文件对象存储到内存中,根据所述文件对象获取对应文件的大小,并检测所述文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将所述文件对应的文件对象从所述内存中删除;
根据所述文件夹中各文件的大小,获取所述文件夹文件总大小。
2.根据权利要求1所述的文件处理方法,其特征在于,在生成文件夹流之前,还包括:
判断所述文件夹中是否存在子文件夹;
若是,则从所述文件夹中筛选出所述子文件夹;
相应地,根据所述文件夹生成文件夹流,并对所述文件夹流进行遍历,包括:
根据所述文件夹中与所述子文件夹位于同一层级的文件生成文件夹流;
根据所述子文件夹中包含的文件生成子文件夹流;
对所述文件夹流进行遍历,且在完成对所述文件夹流的遍历后对所述子文件夹流进行遍历。
3.根据权利要求1所述的文件处理方法,其特征在于,在生成文件夹流之后,还包括:
根据所述文件夹流生成迭代器;
相应地,对所述文件夹流进行遍历,包括:
利用所述迭代器对所述文件夹流进行遍历。
4.根据权利要求1所述的文件处理方法,其特征在于,若确定所述文件访问路径对应是访问文件,则还包括:
生成与所述访问文件对应的文件对象,并将与所述访问文件对应的文件对象存储到所述内存中,且根据与所述访问文件对应的文件对象获取所述访问文件的大小。
5.根据权利要求1所述的文件处理方法,其特征在于,在对所述文件夹流进行遍历时,还包括:
判断所述文件夹流中的文件是否为有效文件;
若是,则执行在遍历时生成与所述文件夹流对应的文件对象的步骤。
6.根据权利要求1所述的文件处理方法,其特征在于,若确定所述文件访问路径不存在,则还包括:
发出文件访问路径错误的提示。
7.一种文件处理装置,其特征在于,包括:
接收模块,用于接收文件访问路径,判断所述文件访问路径是否存在;
第一判断模块,用于若存在,则判断所述文件访问路径对应的是否为文件夹;
第一生成模块,用于若是文件夹,则根据所述文件夹生成文件夹流,并对所述文件夹流进行遍历,且生成与所述文件夹流对应的文件对象;所述文件夹流为对所述文件夹中包含的文件进行排队生成的;对所述文件夹流进行遍历,且生成与所述文件夹流对应的文件对象,包括:对所述文件夹中包含的文件依次进行读取,每读取一个文件,则生成与该文件对应的文件对象;
删除模块,用于将所述文件对象存储到内存中,根据所述文件对象获取对应文件的大小,并检测所述文件夹中是否存在完成遍历且被利用完的已知大小的文件,若存在则将所述文件对应的文件对象从所述内存中删除;
获取模块,用于根据所述文件夹中各文件的大小,获取所述文件夹文件总大小。
8.根据权利要求7所述的文件处理装置,其特征在于,还包括:
第二判断模块,用于判断所述文件夹中是否存在子文件夹;
筛选模块,用于若所述文件夹中存在子文件夹,则从所述文件夹中筛选出所述子文件夹;
相应地,所述第一生成模块包括:
第一生成单元,用于根据所述文件夹中与所述子文件夹位于同一层级的文件生成文件夹流;
第二生成单元,用于根据所述子文件夹中包含的文件生成子文件夹流;
遍历单元,用于对所述文件夹流进行遍历,且在完成对所述文件夹流的遍历后对所述子文件夹流进行遍历。
9.一种文件处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的文件处理方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的文件处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110911019.1A CN113360462B (zh) | 2021-08-10 | 2021-08-10 | 一种文件处理方法、装置、设备及可读存储介质 |
PCT/CN2021/142854 WO2023015830A1 (zh) | 2021-08-10 | 2021-12-30 | 一种文件处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110911019.1A CN113360462B (zh) | 2021-08-10 | 2021-08-10 | 一种文件处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113360462A CN113360462A (zh) | 2021-09-07 |
CN113360462B true CN113360462B (zh) | 2021-11-09 |
Family
ID=77540860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110911019.1A Active CN113360462B (zh) | 2021-08-10 | 2021-08-10 | 一种文件处理方法、装置、设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113360462B (zh) |
WO (1) | WO2023015830A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360462B (zh) * | 2021-08-10 | 2021-11-09 | 苏州浪潮智能科技有限公司 | 一种文件处理方法、装置、设备及可读存储介质 |
CN113836093B (zh) * | 2021-09-29 | 2024-04-12 | 深圳万兴软件有限公司 | 一种网盘文件清理方法、系统、计算机设备及其存储介质 |
CN114443581B (zh) * | 2022-04-11 | 2022-06-17 | 苏州浪潮智能科技有限公司 | 一种下载控制方法、装置、设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1947599B1 (en) * | 2002-12-03 | 2009-06-03 | Research In Motion Limited | Method, system and computer software product for pre-selecting a folder for a message |
CN101547161B (zh) * | 2008-03-28 | 2012-09-26 | 阿里巴巴集团控股有限公司 | 文件夹传输系统、文件夹传输装置及文件夹传输方法 |
CN104731921B (zh) * | 2015-03-26 | 2018-03-30 | 江苏物联网研究发展中心 | Hadoop分布式文件系统针对日志型小文件的存储和处理方法 |
CN105306531A (zh) * | 2015-09-17 | 2016-02-03 | 浪潮集团有限公司 | 一种基于Zip压缩方式的打包下载方法 |
CN110995830B (zh) * | 2019-11-29 | 2023-01-31 | 武汉卓讯互动信息科技有限公司 | 一种网络资源处理方法和装置 |
CN112511633B (zh) * | 2020-12-03 | 2022-11-29 | 苏州浪潮智能科技有限公司 | 一种海量小文件分块传输的方法、系统、设备及介质 |
CN113360462B (zh) * | 2021-08-10 | 2021-11-09 | 苏州浪潮智能科技有限公司 | 一种文件处理方法、装置、设备及可读存储介质 |
-
2021
- 2021-08-10 CN CN202110911019.1A patent/CN113360462B/zh active Active
- 2021-12-30 WO PCT/CN2021/142854 patent/WO2023015830A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN113360462A (zh) | 2021-09-07 |
WO2023015830A1 (zh) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113360462B (zh) | 一种文件处理方法、装置、设备及可读存储介质 | |
CN107704203B (zh) | 聚合大文件的删除方法、装置、设备及计算机存储介质 | |
KR100846499B1 (ko) | 메모리를 관리하는 방법 및 장치 | |
CN111782707B (zh) | 一种数据查询方法及系统 | |
CN109241003B (zh) | 文件管理方法和装置 | |
CN108280031A (zh) | redis缓存清理方法、服务器及计算机可读存储介质 | |
CN110888837A (zh) | 对象存储小文件归并方法及装置 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
CN111488320A (zh) | 一种清理Kubernetes中业务应用程序日志的方法 | |
CN109189343B (zh) | 一种元数据落盘方法、装置、设备及计算机可读存储介质 | |
CN107122247B (zh) | 一种静态占用图片的检测方法和装置 | |
CN110908610A (zh) | 一种卷回收站清理方法、装置、设备及可读存储介质 | |
CN110781166A (zh) | 存储系统中数据管理方法和装置 | |
CN115408342A (zh) | 文件处理方法、装置及电子设备 | |
CN111221468A (zh) | 存储块数据删除方法、装置、电子设备及云存储系统 | |
CN115905110A (zh) | 一种日志文件动态清理方法、装置和计算机设备 | |
CN113821166A (zh) | 一种聚合多版本小对象的方法、装置及设备 | |
CN113868194A (zh) | 一种存储设备本地用户组的管理方法、装置、系统及介质 | |
CN112269763A (zh) | 一种文件聚合方法及相关装置 | |
CN112667575A (zh) | 一种数据包清理方法、装置及其相关设备 | |
CN115098032A (zh) | 集群中磁盘的踢盘处理方法、装置及存储介质 | |
CN113625959B (zh) | 一种数据处理方法和装置 | |
CN117806704A (zh) | 代码复杂度的确定方法、装置、设备和存储介质 | |
CN113286001B (zh) | 一种电子档案上传方法和系统 | |
CN112433671B (zh) | 一种数据持久化方法、系统、设备以及介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |