CN113934692A - 文件清理方法、装置、存储介质及设备 - Google Patents

文件清理方法、装置、存储介质及设备 Download PDF

Info

Publication number
CN113934692A
CN113934692A CN202010675536.9A CN202010675536A CN113934692A CN 113934692 A CN113934692 A CN 113934692A CN 202010675536 A CN202010675536 A CN 202010675536A CN 113934692 A CN113934692 A CN 113934692A
Authority
CN
China
Prior art keywords
file
preset
directory
cleaning
candidate
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
CN202010675536.9A
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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202010675536.9A priority Critical patent/CN113934692A/zh
Publication of CN113934692A publication Critical patent/CN113934692A/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
    • G06F16/162Delete operations
    • 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/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors

Landscapes

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

Abstract

本公开实施例公开了文件清理方法、装置、存储介质及设备。该方法包括:检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录;根据所述引用记录确定目标文件;对所述目标文件进行清除处理。本公开实施例通过采用上述技术方案,当需要对某个文件目录进行文件清理时,通过获取文件目录中每个文件的引用记录来得到文件的被引用情况,进而根据被引用情况来确定可以被清除的文件,而被引用情况可以反映文件的重要程度,进而更加合理地进行文件清理。

Description

文件清理方法、装置、存储介质及设备
技术领域
本公开实施例涉及计算机技术领域,尤其涉及文件清理方法、装置、存储介质及设备。
背景技术
在目前的软件开发过程中,由于移动设备的磁盘空间或存储卡等存储介质的容量存在一定的局限性,应用程序在运行时,对于来自网络或者运行期间生成的动态资源文件等文件,一般都是采用使用后清除或者用户主动选择清除策略。然而,上述文件可能在后面的程序运行中还会再次用到,如果采用上述清除策略,可能在不恰当的时机删除文件,而被删除的文件可能会被再次使用,再次使用的时候可能需要重新下载或者合成文件,等待时长增加,而且会消耗流量和更多的计算资源,造成资源浪费。因此,现有的文件清理方案并不完善,需要改进。
发明内容
本公开实施例提供了文件清理方法、装置、存储介质及设备,可以优化现有的文件清理方案。
第一方面,本公开实施例提供了一种文件清理方法,包括:
检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录,其中,所述引用记录中包含文件的历史被引用情况;
根据所述引用记录确定目标文件;
对所述目标文件进行清除处理。
第二方面,本公开实施例提供了一种文件清理装置,包括:
引用记录获取模块,用于检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录,其中,所述引用记录中包含文件的历史被引用情况;
目标文件确定模块,用于根据所述引用记录确定目标文件;
文件清除模块,用于对所述目标文件进行清除处理。
第三方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例提供的文件清理方法。
第四方面,本公开实施例提供了一种移动设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本公开实施例提供的文件清理方法。
本公开实施例中提供的文件清理方案,检测到第一预设文件目录对应的文件清理事件被触发时,获取第一预设文件目录中各文件的引用记录,根据引用记录确定目标文件,对目标文件进行清除处理。通过采用上述技术方案,当需要对某个文件目录进行文件清理时,通过获取文件目录中每个文件的引用记录来得到文件的历史被引用情况,进而根据被引用情况来确定可以被清除的文件,而被引用情况可以反映文件的重要程度,进而更加合理地进行文件清理。
附图说明
图1为本公开实施例提供的一种文件清理方法的流程示意图;
图2为本公开实施例提供的又一种文件清理方法的流程示意图;
图3为本公开实施例提供的一种预设文件目录示意图;
图4为本公开实施例提供的一种文件清理装置的结构框图;
图5为本公开实施例提供的一种移动设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。
图1为本公开实施例提供的一种文件清理方法的流程示意图,该方法可以由文件清理装置执行,其中该装置可由软件和/或硬件实现,一般可集成在移动设备中。其中,移动设备例如可以是手机、平板电脑、笔记本电脑以及个人数字助理等设备。如图1所示,该方法包括:
步骤101、检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录。
其中,所述引用记录中包含文件的历史被引用情况。
示例性的,第一预设文件目录可以是移动设备中的任意一个文件目录,也可以是预先指定的文件目录。第一预设文件目录中的文件可以是任意类型的文件,也可以是指定类型的文件,例如可以是动态资源文件。动态资源文件可包括需要占用移动设备存储空间的文件可包括来自网络的文件,也可包括应用程序运行期间生成的文件等。
示例性的,可以预先设定第一预设文件目录对应的文件清理事件的触发条件,例如定时触发、或者在接收到用户的触发指令时触发、或第一预设文件目录所占用的存储空间大小达到或超过对应的预设阈值时触发。其中,预设阈值可根据实际情况设定,例如第一预设文件目录所对应的应用程序类型或所存储的文件类型等等。
示例性的,文件的引用记录可以集中存储在一个或多个引用记录文件中。引用记录文件的存储位置不做限定。当存在多个引用记录文件时,一个预设文件目录中可以包含一个引用记录文件,这时,引用记录文件中可以包含该预设文件目录下的所有文件或部分文件对应的引用记录。当存在一个引用记录文件时,引用记录文件可存储在数据库或移动设备中的指定位置,此时,引用记录文件中可以包含移动设备中所有存在引用记录的文件的引用记录。可选的,引用记录也可以存在于对应的文件中,例如,可通过改写文件的头部信息来对引用记录进行存储,也即将文件的引用记录存储在文件的头部信息中。
可选的,引用记录中可包括文件被引用的时间、被引用的次数或被引用的频率等,还可包括文件未被引用的次数或未被引用的频率等。引用又可理解为使用、调用、占用或进行文件操作。其中,未被引用可以是在预设条件下的未被引用,预设条件例如可以基于文件所属应用程序的运行情况设定。示例性的,以未被引用的次数为例,可以是文件生成后,所属应用程序(也可以是进程或线程,也可以是业务模块)每次启动后文件未被引用的次数。例如,应用程序A中的文件a生成后,应用程序A启动了10次,其中,6次启动后文件a被引用,4次启动后文件a未被引用,那么文件a的未被引用的次数为4次。
步骤102、根据所述引用记录确定目标文件。
示例性的,如前文所述,引用记录中包含的信息可以反映文件的被引用情况,一般被引用时间越远离当前时间、被引用次数越少、被引用频率越低、未被引用次数越多或未被引用频率越高,可说明文件的重要程度越低,因此,可将重要程度低的文件确定为目标文件,重要程度低的文件再次被引用的概率一般也较低,因此可优先被清理,在保证重要文件不被清理的同时,节约移动设备的存储空间,也减少文件重新下载或合成的操作,节约系统资源。
步骤103、对所述目标文件进行清除处理。
本公开实施例中,清除处理的具体方式不做限定,例如,可将目标文件转移或剪切到回收站(其中,回收站中的文件可以采用一定的策略进行删除,如定时删除),也可将目标文件直接删除。
本公开实施例中提供的文件清理方法,检测到第一预设文件目录对应的文件清理事件被触发时,获取第一预设文件目录中各文件的引用记录,根据引用记录确定目标文件,对目标文件进行清除处理。通过采用上述技术方案,当需要对某个文件目录进行文件清理时,通过获取文件目录中每个文件的引用记录来得到文件的被引用情况,进而根据被引用情况来确定可以被清除的文件,而被引用情况可以反映文件的重要程度,进而更加合理地进行文件清理。
在一些实施例中,在所述检测到第一预设文件目录对应的文件清理事件被触发之前,还包括:检测到第一预设类型文件在第一预设文件目录中生成;对所述第一预设类型文件的被引用情况进行统计,并根据统计结果更新所述第一预设类型文件对应的引用记录。这样设置的好处在于,在文件生成后,对文件的被引用情况进行统计,并及时更新文件对应的引用记录,保证在文件清理事件被触发时能够依据准确的引用记录进行目标文件的确定。其中,预设类型可根据实际需求设置,可基于文件格式(如视频格式或图片格式等)或文件来源(如从互联网上下载或应用程序运行过程中产生等)等确定。
在一些实施例中,所述第一预设文件目录包含于第一应用程序的文件目录中,所述第一预设文件目录对应所述第一应用程序的第一业务模块。这样设置的好处在于,可以按照业务对应用程序的文件目录进行划分,得到多个预设文件目录,每个预设文件目录对应一个业务模块,方便按照业务对文件进行存储管理以及清理。以推荐引擎应用程序(Application,APP)为例,该APP内可以推荐新闻和视频等,APP界面中可以显示新闻页和视频页,新闻页对应一个业务模块,视频页对应一个业务模块,可以分别设置一个预设文件目录用于存储新闻页对应的文件,以及设置一个预设文件目录用于存储视频页对应的文件。
在一些实施例中,所述引用记录包括引用计数。引用计数具体可以是被引用次数或未被引用次数。示例性的,引用计数为未被引用次数。这样设置的好处在于,若采用被引用次数的方案,没有被引用的文件都是没有引用记录的,所以需要把预设文件目录中的所有文件都遍历一遍,才能确定目标文件,而采用未被引用次数的方案,没有被引用的文件是有引用记录的,则可直接准确地确定目标文件,不需要把所有文件扫描一遍。
在一些实施例中,所述对所述第一预设类型文件的被引用情况进行统计,并根据统计结果更新所述第一预设类型文件对应的引用记录,包括:检测到所述第一业务模块启动后,将所述第一预设类型文件对应的引用计数加1;若在所述第一业务模块结束运行之前,所述第一预设类型文件被引用,则将所述第一预设类型文件对应的引用计数减1。这样设置的好处在于,可以更加精准地对引用计数进行统计。应用程序中与第一预设文件目录对应的第一业务模块启动后,默认第一预设文件目录中的文件此时均是未被引用的,因此,将文件对应的引用计数加1,而在第一业务模块运行过程中,如果第一预设类型文件被引用,则将对应的引用计数减1,而其他未被引用的文件,如第二预设类型文件对应的引用计数会因此次第一业务模块的启动而加1。
在一些实施例中,所述引用记录包括引用计数,所述引用计数表示未被引用的次数,所述根据所述引用记录确定目标文件,包括:将所述第一预设文件目录中所对应的引用计数最大的文件确定为目标文件。这样设置的好处在于,能够快速合理地确定目标文件。其中,第一预设文件目录中的一个文件对应的未被引用的次数,可以指第一预设文件目录所对应的应用程序或所对应的应用程序中的业务模块,在该文件生成后的每次运行过程中,该文件未被引用的次数。示例性的,第一预设文件目录中的第一文件对应的引用计数可通过以下方式得到:第一文件生成后,第一文件对应的引用计数初始化为0,检测到第一预设文件目录对应的第一应用程序或第一业务模块启动后,将第一文件对应的引用计数加1,若在第一应用程序或第一业务模块结束运行之前,第一文件被引用,则将第一文件对应的引用计数减1。其中,第一文件可以是第一预设文件目录中的任意一个文件。
在一些实施例中,还可结合最后使用时间来综合确定目标文件。可选的,当第一预设文件目录中所对应的引用计数最大的文件为多个时,可将最后一次被引用的时间距离当前时间最远的文件确定为目标文件。可选的,若引用计数最大的文件均未被引用过,可将生成时间距离当前时间最远的文件确定为目标文件。可选的,还可对引用计数和最后一次被引用的时间距离当前时间的差值进行加权求和,根据加权求和结果确定目标文件。例如,引用计数记为N,最后一次被引用的时间距离当前时间的差值记为T,加权求和结果记为S,则S=k1*N+k2*T,其中,k1和k2表示权重系数,具体数值可根据实际情况进行设置,一般的,k1可以大于k2,可将S值最大的一个文件或S值较大的指定数量的文件确定为目标文件。
在一些实施例中,所述将所述第一预设文件目录中所对应的引用计数最大的文件确定为目标文件,包括:确定所述第一预设文件目录中所对应的引用计数最大的文件为候选文件;若确定所述候选文件满足预设清理条件,则将所述候选文件确定为目标文件,其中,所述预设清理条件包括未处于被引用中、未处于预设白名单和所述第一业务模块启动后未被引用过中的至少一个。这样设置的好处在于,可以有效避免重要文件被误删。若候选文件正在使用中,对候选文件进行删除可能会导致程序出错;若候选文件处于预设白名单,说明候选文件是需要保护的文件;若候选文件在第一业务模块启动后已经被引用过,说明可能近期还会被引用,需要暂缓删除。若候选文件未处于被引用中,也未处于预设白名单中,第一业务模块启动后也未被引用过,则可确定为最终的目标文件。其中,预设白名单可以以文件路径列表形式存在,预设白名单中包含的文件可根据应用程序或业务模块的具体需求设置,如应用程序内置特效、启动动画或开屏视频等文件,需要列入预设白名单中。此外,还可以支持由用户自主设置预设白名单。可选的,若确定所述候选文件不满足预设清理条件,则可重新确定候选文件。例如,将当前候选文件对应的引用计数减1后,再将第一预设文件目录中所对应的引用计数最大的文件为候选文件。
在一些实施例中,判断所述候选文件是否未处于被引用中,包括:尝试获取所述候选文件的租约,若尝试结果为获取成功,则确定所述候选文件未处于被引用中。这样设置的好处在于,可以准确地确定文件是否处于被引用中,也即更准确地确定候选文件的文件状态。
现有技术中,如果应用程序在运行时需要在某个进程里面确定文件状态,如判断一个文件是否被其它进程或者线程正在使用,一般采用的是基于文件锁的方案。基于文件锁的方案要求文件使用方在每个使用(如读、写、打开或删除等)文件的地方显式地调用锁(lock)方法构造一个文件锁(FileLock),在文件使用后调用释放(release)方法释放文件锁。应用程序在需要确定文件状态时,尝试获取文件锁,如果获取到了就说明文件状态为没有被占用,否则说明文件状态为被占用。这种方案存在以下问题,若文件使用方没有主动进行加锁,那么应用程序在确定文件状态时,会得到错误的结果,且如果没有其它进程或线程需要确定文件状态,则会导致文件使用方的加锁操作变得没有意义,浪费资源。而本公开实施例中,应用程序的进程或线程在需要确定文件的当前状态时,不需要获取文件锁,而是直接通过尝试获取文件的租约的尝试结果来准确地确定文件的当前状态,且在需要使用文件时,也不需要再对文件进行加锁操作,节约系统资源。现有的基于文件锁的方案中,使用文件的一方可理解为生产端,而想要确定文件状态的一方可理解为消费端,生产端在想要操作文件时,需要主动为文件加锁,而生产端在想要对文件进行操作前也要获取文件锁,也就是说生产端和消费端均有操作,若生产端忘记主动加文件锁或使用后忘记释放文件锁,就会导致消费端无法获取准确的文件状态;而本公开实施例中的方案,相当于生产端没有额外的文件加锁操作,只是作为消费端时,需要尝试获取文件的租约,也就是说,文件使用方不需要关心文件是否会在其它进程或线程中判断使用状态的问题,可以仅在使用的地方单方面判断文件是否被占用,文件系统默认对正在被使用(访问)的文件添加了租约状态,在使用的地方增加判断租约的逻辑即可,如果不需要判断,什么工作都不需要做,这种方案对文件使用方来说是无感知的,只有判断文件状态的模块需要处理,可以在不需要增加任何业务逻辑代码的情况下准确获取到文件状态,减少不必要的操作,节约系统资源。
示例性的,租约又称lease,在Linux等操作系统的文件系统中存在租约机制,用于文件系统管理,这里的文件系统例如可以包括第四代扩展文件系统(Fourth ExtendedFilesystem,EXT4)或EXT3等等。示例性的,本公开中的移动设备中所装载的操作系统可以是Linux系统,还可以是基于Linux的系统等。例如,安卓(Android)操作系统的内核是基于Linux实现的,所采用的文件系统是Linux的EXT4系统,因此,也存在租约机制。在租约机制中,某个文件被操作时,文件系统会在文件头的一个区域中标记获取到租约的状态,标记的过程通常在核心(Kernal)层实现,此时如果另外一个进程尝试去获取租约,就会失败。本公开实施例中,可以利用操作系统中已有的该租约机制来达到确定文件状态的目的,因此,在需要判断候选文件是否未处于被引用中,尝试获取候选文件的租约。
示例性的,本公开实施例中的移动设备可以装载有基于Linux的操作系统,例如安卓操作系统。
示例性的,尝试获取所述候选文件的租约包括若通过预设接口读取到所述候选文件的文件头中的租约标识,则尝试获取所述候选文件的租约失败。这样设置的好处在于,可以准确地判断是否尝试成功。其中,预设接口可以是Java本地接口(Java NativeInterface,JNI),若通过JNI接口可以读取到候选文件的文件头中的租约标识(由文件系统添加),则可认为文件系统已将候选文件的租约给到其他进程或线程,则获取租约失败。可选的,若通过预设接口未读取到所述候选文件的文件头中的租约标识,则尝试获取所述候选文件的租约成功。
在一些实施例中,所述检测到第一预设文件目录对应的文件清理事件被触发,包括:检测到第一预设文件目录所占用的存储空间大小达到或超过对应的预设阈值时,确定检测到第一预设文件目录对应的文件清理事件被触发。这样设置的好处在于,可针对不同的预设文件目录设置不同的预设阈值,有针对性触发文件清理事件。例如,应用程序中包含播放器模块和拍摄模块,分别对应目录1和目录2,目录1对应的预设阈值为100M,目录2对应的预设阈值为300M,那么当目录1所占用的存储空间大小达到100M时就触发对应的文件清理事件,而目录2所占用的存储空间达到300M时才触发对应的文件清理事件。
图2为本公开实施例提供的又一种文件清理方法的流程示意图,本公开实施例以上述实施例中各个可选方案为基础进行优化,以第一应用程序为例,第一应用程序的文件目录被划分为多个预设文件目录,每个预设文件目录分别对应第一应用程序中的一个业务模块。以第一预设文件目录为例,第一预设文件目录对应第一业务模块,同理,第二预设文件目录对应第二业务模块,其他预设文件目录也分别对应相应的业务模块,此处不再穷举。每个预设文件目录分别对应一个预设阈值,当预设文件目录所占用的存储空间大小达到或超过对应的预设阈值时,触发该预设文件目录对应的文件清理事件。以未被引用的次数体现引用计数。图3为本公开实施例提供的一种预设文件目录示意图,如图3所示,第一应用程序被划分为n个业务模块(图3中仅示出了第一个业务模块和第n个业务模块分别对应的预设文件目录)。预设文件目录中存储有引用记录文件,引用记录文件中存储有所属目录中文件对应的引用计数,以目录1为例,记录的文件1(file1)的引用计数为6,文件2(file2)的引用计数为3,文件3(file3)的引用计数为4。
下面以第一预设文件目录为例进行说明,具体的,该方法可包括如下步骤:
步骤201、检测到第一业务模块启动。
其中,在步骤201之前还可包括,检测到第一预设类型文件在第一预设文件目录中生成,初始化第一预设类型文件对应的引用计数为0。预设类型文件可以是动态资源文件,第一预设类型文件可以是第一预设文件目录中生成的任意一个动态资源文件。
步骤202、对于第一业务模块对应的第一预设文件目录中的每个文件,将对应的引用计数加1。
在本步骤中,在第一业务模块对应的进程启动后,遍历第一业务模块对应的第一预设文件目录中的每个目录资源(也即每个文件)进行遍历,并增加一次引用计数,也即默认每个文件都增加一次未被引用的次数。
步骤203、对于第一预设文件目录中的每个文件,若确定当前文件在第一业务模块结束运行之前被引用,则将对应的引用计数减1。
也就是说,本步骤中,分别判断每个文件是否在第一业务模块对应的程序运行期间是否被使用到,若被使用到,则将未被引用的次数减1。若未被使用到,则引用计数可以不变。
步骤204、判断第一预设文件目录所占用的存储空间大小是否达到或超过对应的预设阈值,若是,则执行步骤205;否则,结束流程。
步骤205、确定第一预设文件目录中所对应的引用计数最大的文件为候选文件。
步骤206、判断候选文件是否满足预设清理条件,若是,则执行步骤208;否则,执行步骤207。
示例性的,可先判断候选文件是否正在使用,若正在使用,则执行步骤207,若未在使用,则继续判断候选文件是否处于预设白名单,若处于,则执行步骤207,若未处于,则继续判断本次进程启动(也即本次第一业务模块启动)后是否被使用过,若被使用过,则执行步骤207,若未被使用过,则执行步骤208。
可选的,当候选文件存在多个时,也即存在多个引用计数最大的文件时,可能其中部分候选文件满足预设清理条件,也即存在能够成为目标文件的候选文件,则可直接执行步骤208(也可先执行步骤207,将不满足预设清理条件的候选文件对应的引用计数减1,再执行步骤208),将满足预设清理条件的候选文件确定为目标文件,对目标文件进行清除处理,然后返回执行步骤204。
步骤207、将候选文件对应的引用计数减1,并返回执行步骤205。
一般的,候选文件若不满足预设清理条件,那么再后续的判定过程中也会继续不满足预设清理条件,因此,也可以在重新确定候选文件时,将其排除,也就是说,本步骤也可以是将首选文件对应的引用计数清零,可进一步提升文件清理效率。
步骤208、将候选文件确定为目标文件,对目标文件进行清除处理,返回执行步骤204。
示例性的,在对目标文件进行清除处理后,由于目标文件的文件大小不定,因此,还可能存在第一预设文件目录所占用的存储空间大小达到或超过对应的预设阈值的情况,因此,可返回步骤204继续判断,若仍存在该情况,可继续确定目标文件并进行清理,直到第一预设文件目录所占用的存储空间大小小于预设阈值。
本公开实施例提供的文件清理方法,将应用程序的文件目录被划分为多个预设文件目录,每个预设文件目录分别对应第一应用程序中的一个业务模块,每个预设文件目录分别对应一个预设阈值,当预设文件目录所占用的存储空间大小达到或超过对应的预设阈值时,触发该预设文件目录对应的文件清理事件,以未被引用的次数为依据确定目标文件并进行清理,直到所占用的存储空间大小小于对应的预设阈值。上述方案不需要每个业务模块每次对文件进行清理,单个资源文件可以保留到下次程序或模块启动并且被使用,不需要再次下载或者合成,且即使触发文件清理,所清理的目标文件由于未被引用次数较大,可说明重要程度较低,再次被应用的概率也较低,也即最不常用的或者完全不会再用到的资源被删除,这样大大提高了资源利用率。
图4为本公开实施例提供的一种文件清理装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在移动设备中,可通过执行文件清理方法来进行文件清理。如图4所示,该装置包括:
引用记录获取模块401,用于检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录,其中,所述引用记录中包含文件的历史被引用情况;
目标文件确定模块402,用于根据所述引用记录确定目标文件;
文件清除模块403,用于对所述目标文件进行清除处理。
本公开实施例中提供的文件清理装置,检测到第一预设文件目录对应的文件清理事件被触发时,获取第一预设文件目录中各文件的引用记录,根据引用记录确定目标文件,对目标文件进行清除处理。通过采用上述技术方案,当需要对某个文件目录进行文件清理时,通过获取文件目录中每个文件的引用记录来得到文件的被引用情况,进而根据被引用情况来确定可以被清除的文件,而被引用情况可以反映文件的重要程度,进而更加合理地进行文件清理。
可选的,该装置还可包括:
文件生成检测模块,用于在所述检测到第一预设文件目录对应的文件清理事件被触发之前,检测第一预设文件目录中生成的预设类型文件;
引用记录更新模块,用于在检测到第一预设类型文件在第一预设文件目录中生成后,对所述第一预设类型文件的被引用情况进行统计,并根据统计结果更新所述第一预设类型文件对应的引用记录。
可选的,所述第一预设文件目录包含于第一应用程序的文件目录中,所述第一预设文件目录对应所述第一应用程序的第一业务模块;所述引用记录包括引用计数;
所述对所述第一预设类型文件的被引用情况进行统计,并根据统计结果更新所述第一预设类型文件对应的引用记录,包括:
检测到所述第一业务模块启动后,将所述第一预设类型文件对应的引用计数加1;
若在所述第一业务模块结束运行之前,所述第一预设类型文件被引用,则将所述第一预设类型文件对应的引用计数减1。
可选的,所述引用记录包括引用计数,所述引用计数表示未被引用的次数,所述根据所述引用记录确定目标文件,包括:
将所述第一预设文件目录中所对应的引用计数最大的文件确定为目标文件。
可选的,所述将所述第一预设文件目录中所对应的引用计数最大的文件确定为目标文件,包括:
确定所述第一预设文件目录中所对应的引用计数最大的文件为候选文件;
若确定所述候选文件满足预设清理条件,则将所述候选文件确定为目标文件,其中,所述预设清理条件包括未处于被引用中、未处于预设白名单和所述第一业务模块启动后未被引用过中的至少一个。
可选的,判断所述候选文件是否未处于被引用中,包括:
尝试获取所述候选文件的租约,若尝试结果为获取成功,则确定所述候选文件未处于被引用中。
可选的,所述检测到第一预设文件目录对应的文件清理事件被触发,包括:
检测到第一预设文件目录所占用的存储空间大小达到或超过对应的预设阈值时,确定检测到第一预设文件目录对应的文件清理事件被触发。
下面参考图5,其示出了适于用来实现本公开实施例的移动设备500的结构示意图。本公开实施例中的移动设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动设备以及诸如数字TV、台式计算机等等的固定终端。图5示出的移动设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,移动设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有移动设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许移动设备500与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的移动设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述移动设备中所包含的;也可以是单独存在,而未装配入该移动设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该移动设备执行时,使得该移动设备:检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录;根据所述引用记录确定目标文件;对所述目标文件进行清除处理。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,文件清除模块还可以被描述为“用于对所述目标文件进行清除处理的模块”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,提供了一种文件清理方法,包括:
检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录;
根据所述引用记录确定目标文件;
对所述目标文件进行清除处理。
进一步的,在所述检测到第一预设文件目录对应的文件清理事件被触发之前,还包括:
检测到第一预设类型文件在第一预设文件目录中生成;
对所述第一预设类型文件的被引用情况进行统计,并根据统计结果更新所述第一预设类型文件对应的引用记录。
进一步的,所述第一预设文件目录包含于第一应用程序的文件目录中,所述第一预设文件目录对应所述第一应用程序的第一业务模块;所述引用记录包括引用计数;
所述对所述第一预设类型文件的被引用情况进行统计,并根据统计结果更新所述第一预设类型文件对应的引用记录,包括:
检测到所述第一业务模块启动后,将所述第一预设类型文件对应的引用计数加1;
若在所述第一业务模块结束运行之前,所述第一预设类型文件被引用,则将所述第一预设类型文件对应的引用计数减1。
进一步的,所述引用记录包括引用计数,所述引用计数表示未被引用的次数,所述根据所述引用记录确定目标文件,包括:
将所述第一预设文件目录中所对应的引用计数最大的文件确定为目标文件。
进一步的,所述将所述第一预设文件目录中所对应的引用计数最大的文件确定为目标文件,包括:
确定所述第一预设文件目录中所对应的引用计数最大的文件为候选文件;
若确定所述候选文件满足预设清理条件,则将所述候选文件确定为目标文件,其中,所述预设清理条件包括未处于被引用中、未处于预设白名单和所述第一业务模块启动后未被引用过中的至少一个。
进一步的,判断所述候选文件是否未处于被引用中,包括:
尝试获取所述候选文件的租约,若尝试结果为获取成功,则确定所述候选文件未处于被引用中。
进一步的,所述检测到第一预设文件目录对应的文件清理事件被触发,包括:
检测到第一预设文件目录所占用的存储空间大小达到或超过对应的预设阈值时,确定检测到第一预设文件目录对应的文件清理事件被触发。
根据本公开的一个或多个实施例,提供了一种文件清理装置,包括:
引用记录获取模块,用于检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录;
目标文件确定模块,用于根据所述引用记录确定目标文件;
文件清除模块,用于对所述目标文件进行清除处理。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (10)

1.一种文件清理方法,其特征在于,包括:
检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录,其中,所述引用记录中包含文件的历史被引用情况;
根据所述引用记录确定目标文件;
对所述目标文件进行清除处理。
2.根据权利要求1所述的方法,其特征在于,在所述检测到第一预设文件目录对应的文件清理事件被触发之前,还包括:
检测到第一预设类型文件在第一预设文件目录中生成;
对所述第一预设类型文件的被引用情况进行统计,并根据统计结果更新所述第一预设类型文件对应的引用记录。
3.根据权利要求2所述的方法,其特征在于,所述第一预设文件目录包含于第一应用程序的文件目录中,所述第一预设文件目录对应所述第一应用程序的第一业务模块;所述引用记录包括引用计数;
所述对所述第一预设类型文件的被引用情况进行统计,并根据统计结果更新所述第一预设类型文件对应的引用记录,包括:
检测到所述第一业务模块启动后,将所述第一预设类型文件对应的引用计数加1;
若在所述第一业务模块结束运行之前,所述第一预设类型文件被引用,则将所述第一预设类型文件对应的引用计数减1。
4.根据权利要求1所述的方法,其特征在于,所述引用记录包括引用计数,所述引用计数表示未被引用的次数,所述根据所述引用记录确定目标文件,包括:
将所述第一预设文件目录中所对应的引用计数最大的文件确定为目标文件。
5.根据权利要求4所述的方法,其特征在于,所述将所述第一预设文件目录中所对应的引用计数最大的文件确定为目标文件,包括:
确定所述第一预设文件目录中所对应的引用计数最大的文件为候选文件;
若确定所述候选文件满足预设清理条件,则将所述候选文件确定为目标文件,其中,所述预设清理条件包括未处于被引用中、未处于预设白名单和所述第一业务模块启动后未被引用过中的至少一个。
6.根据权利要求5所述的方法,其特征在于,判断所述候选文件是否未处于被引用中,包括:
尝试获取所述候选文件的租约,若尝试结果为获取成功,则确定所述候选文件未处于被引用中。
7.根据权利要求1-6任一所述的方法,其特征在于,所述检测到第一预设文件目录对应的文件清理事件被触发,包括:
检测到第一预设文件目录所占用的存储空间大小达到或超过对应的预设阈值时,确定检测到第一预设文件目录对应的文件清理事件被触发。
8.一种文件清理装置,其特征在于,包括:
引用记录获取模块,用于检测到第一预设文件目录对应的文件清理事件被触发时,获取所述第一预设文件目录中各文件的引用记录,其中,所述引用记录中包含文件的历史被引用情况;
目标文件确定模块,用于根据所述引用记录确定目标文件;
文件清除模块,用于对所述目标文件进行清除处理。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的方法。
10.一种移动设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的方法。
CN202010675536.9A 2020-07-14 2020-07-14 文件清理方法、装置、存储介质及设备 Pending CN113934692A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010675536.9A CN113934692A (zh) 2020-07-14 2020-07-14 文件清理方法、装置、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010675536.9A CN113934692A (zh) 2020-07-14 2020-07-14 文件清理方法、装置、存储介质及设备

Publications (1)

Publication Number Publication Date
CN113934692A true CN113934692A (zh) 2022-01-14

Family

ID=79273872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010675536.9A Pending CN113934692A (zh) 2020-07-14 2020-07-14 文件清理方法、装置、存储介质及设备

Country Status (1)

Country Link
CN (1) CN113934692A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116594961A (zh) * 2023-07-19 2023-08-15 安徽华云安科技有限公司 文件处理方法、装置、设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317840A (zh) * 2014-10-10 2015-01-28 北京金山安全软件有限公司 一种文件清理方法、装置及终端
CN106528577A (zh) * 2015-09-15 2017-03-22 腾讯科技(深圳)有限公司 一种设置待清理文件的方法和装置
CN109033247A (zh) * 2018-07-05 2018-12-18 Oppo(重庆)智能科技有限公司 一种应用程序的管理方法、装置、存储介质及终端
CN109597798A (zh) * 2018-12-04 2019-04-09 平安科技(深圳)有限公司 网络文件删除方法、装置、计算机设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317840A (zh) * 2014-10-10 2015-01-28 北京金山安全软件有限公司 一种文件清理方法、装置及终端
CN106528577A (zh) * 2015-09-15 2017-03-22 腾讯科技(深圳)有限公司 一种设置待清理文件的方法和装置
CN109033247A (zh) * 2018-07-05 2018-12-18 Oppo(重庆)智能科技有限公司 一种应用程序的管理方法、装置、存储介质及终端
CN109597798A (zh) * 2018-12-04 2019-04-09 平安科技(深圳)有限公司 网络文件删除方法、装置、计算机设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116594961A (zh) * 2023-07-19 2023-08-15 安徽华云安科技有限公司 文件处理方法、装置、设备以及存储介质
CN116594961B (zh) * 2023-07-19 2023-09-22 安徽华云安科技有限公司 文件处理方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
US10114740B2 (en) Memory management techniques
US10712915B2 (en) Information presentation using a client on a terminal
CN111221638B (zh) 并发任务的调度处理方法、装置、设备和介质
US20220035655A1 (en) Method and Device for Anonymous Page Management, Terminal Device, and Readable Storage Medium
CN111274503B (zh) 数据处理的方法、装置、电子设备及计算机可读介质
CN110633434B (zh) 一种页面缓存方法、装置、电子设备及存储介质
CN111198856A (zh) 文件管理方法、装置、计算机设备和存储介质
CN110688353A (zh) 文件管理方法、设备以及计算机可读介质
CN109117153B (zh) 应用程序的处理方法、装置、终端和存储介质
CN115599707A (zh) 内存管理方法、装置、介质及电子设备
US10747675B2 (en) Method and device for managing caches
WO2020006859A1 (zh) 一种图片缓存清理方法、装置、终端设备及介质
CN115827162A (zh) 一种智能化处理镜像仓库数据方法、装置、介质及设备
CN113934692A (zh) 文件清理方法、装置、存储介质及设备
CN108205559B (zh) 一种数据管理方法及其设备
CN108121514B (zh) 元信息更新方法、装置、计算设备及计算机存储介质
CN111625500B (zh) 文件快照方法及装置、电子设备和存储介质
CN112905541B (zh) 镜像仓库垃圾清理方法和装置
CN111078405B (zh) 内存分配方法、装置、存储介质及电子设备
CN111949528A (zh) 内存泄漏的检测方法、装置、电子设备和存储介质
CN111258754A (zh) 一种基于时间窗口的资源处理方法、装置、介质以及系统
CN106959888B (zh) 云存储系统中的任务处理方法及装置
CN114428589B (zh) 一种数据处理方法、装置、电子设备及存储介质
CN110716885B (zh) 数据管理方法、装置、电子设备和存储介质
CN116226310A (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