iOS工程无用文件的清理方法及计算机可读存储介质与流程

文档序号:16086968发布日期:2018-11-27 22:33阅读:174来源:国知局

本发明涉及资源清理技术领域,尤其涉及一种iOS工程无用文件的清理方法及计算机可读存储介质。



背景技术:

项目管理是指在项目活动中运用专门的知识、技能、工具和方法,使项目能够在有限资源限定条件下,实现或超过设定的需求和期望的过程。软件项目管理的关键问题范畴包括软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等。

一个iOS工程可以分为多个target项目,每个target项目都含有大量的源代码文件(后缀为.m的文件)与对应的头文件(后缀为.h的文件)。在大版本的迭代会涉及到大量代码文件的新增、删除与修改。而部分的工程在删除代码文件的时候,会分为多步,以保证在删除之后出现问题,可以立即恢复。而在完成代码迭代之后,需要找到原先删除掉引用的文件,并在文件夹中删除。此时则需要分别查询工程中是否存在对应路径的文件,耗时耗力,严重影响了项目的工作成本与下期迭代的进度。



技术实现要素:

本发明所要解决的技术问题是:提供一种iOS工程无用文件的清理方法及计算机可读存储介质,可降低项目的工作成本,并提高迭代进度。

为了解决上述技术问题,本发明采用的技术方案为:一种iOS工程无用文件的清理方法,包括:

获取工程中各项目中的引用代码文件的文件地址;

获取工程目录下各源代码文件的文件地址;

比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;

根据所述多余的源代码文件,定位到对应的头文件;

删除所述多余的源代码文件及其对应的头文件。

本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

获取工程中各项目中的引用代码文件的文件地址;

获取工程目录下各源代码文件的文件地址;

比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;

根据所述多余的源代码文件,定位到对应的头文件;

删除所述多余的源代码文件及其对应的头文件。

本发明的有益效果在于:通过获取工程中所有项目中所引用的文件与工程目录中实际存在的所有源代码文件,并对其进行对比,如果工程目录中实际存在的源代码文件比工程项目中的引用代码文件多,则说明有多余的源代码文件,从而实现了无用文件的自动判断;通过源代码文件定位到其头文件,并进行删除,从而实现了无用文件的自动删除。本发明通过无用文件的自动判断和自动删除,提高了无用文件的清理速度,降低了项目的工作成本,提高了迭代进度。

附图说明

图1为本发明一种iOS工程无用文件的清理方法的流程图;

图2为本发明实施例一的方法流程图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:对比工程项目中所有的引用代码文件和工程目录中所有的源代码文件,获取多余的源代码文件及其对应的头文件,并进行删除。

请参阅图1,一种iOS工程无用文件的清理方法,包括:

获取工程中各项目中的引用代码文件的文件地址;

获取工程目录下各源代码文件的文件地址;

比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;

根据所述多余的源代码文件,定位到对应的头文件;

删除所述多余的源代码文件及其对应的头文件。

从上述描述可知,本发明的有益效果在于:通过无用文件的自动判断和自动删除,提高了无用文件的清理速度,降低了项目的工作成本,提高了迭代进度。

进一步地,所述获取工程中各项目中的引用代码文件的文件地址之后,进一步包括:

对所述引用代码文件的文件地址进行去重并整合。

由上述描述可知,通过进行去重整合,可提高后续比对的效率。

进一步地,所述获取工程目录下各源代码文件的文件地址之后,进一步包括:

根据所述源代码文件的文件名的前后缀,对所述源代码文件进行过滤。

由上述描述可知,根据文件名的前缀,去除临时文件(.开头的文件);根据文件名的后缀,去除无关文件(后缀不为.m的文件)。

进一步地,所述删除所述多余的源代码文件及其对应的头文件之后,进一步包括:

判断所删除的源代码文件或其对应的头文件所在目录是否为空目录;

若是,则删除所述目录,并判断其父目录是否为空目录。

由上述描述可知,通过删除空目录,可避免在删除文件之后,留下许多无用的空目录。

本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

获取工程中各项目中的引用代码文件的文件地址;

获取工程目录下各源代码文件的文件地址;

比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;

根据所述多余的源代码文件,定位到对应的头文件;

删除所述多余的源代码文件及其对应的头文件。

进一步地,所述获取工程中各项目中的引用代码文件的文件地址之后,进一步包括:

对所述引用代码文件的文件地址进行去重并整合。

进一步地,所述获取工程目录下各源代码文件的文件地址之后,进一步包括:

根据所述源代码文件的文件名的前后缀,对所述源代码文件进行过滤。

进一步地,所述删除所述多余的源代码文件及其对应的头文件之后,进一步包括:

判断所删除的源代码文件或其对应的头文件所在目录是否为空目录;

若是,则删除所述目录,并判断其父目录是否为空目录。

实施例一

请参照图2,本发明的实施例一为:一种iOS工程无用文件的清理方法,包括如下步骤:

S1:定位到待清理的iOS工程,获得所述工程对应的目录文件,即.xcodeproj文件。具体地,在定位之前,先将待清理工程的工程位置、工程名称以及是否需要删除等需要自定义的参数写入一个环境文件中,并用.yaml类型的文件进行保存。然后读取到环境文件中的对应参数,定位到对应的工程,并打开其工程文件,在iOS的工程中,即打开其对应的.pbxproj文件,获得工程中所有的相关信息。

S2:获取所述工程中包含的所有项目,即所有存在的target。具体地,使用ruby语言中的xcodeproj模块,可以方便地打开工程,并且可以获取到所有的项目等。

xcodeproj是ruby语言中专门用来修改iOS工程配置的模块。已经封装了获取工程、工程中的项目、项目中的文件引用、项目的库的引用等等操作。使用xcodeproj模块,可以最大限度的简化对应的操作。通过xcodeproj模块打开对应的工程文件将会得到一个工程对象,然后可通过打开对应的工程对象获取工程中所有的项目,项目以target对象方式存在。进一步地,可将所有的target项目对象放入项目数组中,以待备用。

S3:获取各项目中的引用代码文件的文件地址。具体地,通过xcodeproj模块循环获取上述项目数组中的target项目对象,通过source_build_phase.files可以获取到所有的引用代码文件对象,其中target对象通过source_build_phase可以获得sourcesBuildPhase对象,sourceBuildPhase对象再通过.files获取到所有的buildFile类型的引用文件对象数组;再通过递归数组,得到单一的引用代码文件对象,通过file_ref.real_path.to_s获取引用代码文件的绝对路径,其中数组中提取出来的引用文件对象可以通过file_ref获取对应的FileReference对象,并且FileReference对象可通过real_path,获取到对应的pathname对象,最后再通过pathname对象的to_s方法获取对应的易使用的序列字符串。进一步地,分别将各项目中的引用代码文件的文件地址存放在不同的第一地址数组中,这些第一地址数组分别对应各项目中的引用代码文件。

S4:对所述引用代码文件的文件地址进行去重,并整合。具体地,可将第一个第一地址数组作为主数组,并依次与其他第一地址数组中的文件地址进行对比,如果发现有主数组未包含的文件地址,则将其添加到主数组中。

S5:获取工程目录下各源代码文件的文件地址。具体地,可以通过ruby语言自带的find模块,遍历工程目录中的所有存在的子文件,其中子文件不一定会被项目所使用。Find模块是用来搜索目录下的文件的模块。

进一步地,根据所述源代码文件的文件名的前后缀,对所述源代码文件进行过滤,具体地,通过前缀去除临时文件(.开头则为临时文件),通过后缀去除其余的无关文件(不为.m的文件为无关文件)。即将所有的文件地址进行筛选,将.m文件且非.开头的文件的文件路径写入第二地址数组。其中,.m文件即为源代码文件。

S6:比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;所述多余的源代码文件为文件地址不与所述引用代码文件的文件地址匹配的源代码文件。具体地,以源代码文件对应的第二地址数组作为原数组,引用代码文件对应的第一地址数组作为对比数组进行对比;循环遍历,若第二地址数组中存在某个文件地址为第一地址数组中不存在的,则将该文件地址写入一个新的数组中,即多余源代码文件数组中。

S7:根据所述多余的源代码文件,定位到对应的头文件。具体地,循环遍历步骤S6得到的多余源代码文件数组,由于源代码文件(.m文件)与头文件(.h文件)基本为一一对应的关系,因此将源代码文件的文件地址的最后一个字符从m改为h,即可得到对应的头文件的文件路径。也就是说,本实施例中,源代码文件与其对应的头文件存储在同一个目录下。

S8:删除所述多余的源代码文件及其对应的头文件。进一步地,根据使用情况不同,有时只需列出对应的文件即可,无需马上进行删除。因此,先从步骤S1中的环境文件中读取是否删除文件的参数,若需要删除,则遍历多余源代码文件数组,如果源代码文件或者其头文件存在,且有删除权限则进行删除,若无删除权限或不存在,则进行提示。

进一步地,在删除源代码文件及其对应的头文件后,判断所删除的源代码文件及其对应的头文件所在的当前目录是否为空目录,若是,则删除当前目录,并判断其上一个目录,即父目录是否为空目录,若是则继续删除,直至非空目录为止。通过删除空目录,可避免在删除文件之后,留下许多无用的空目录。

进一步地,当所有多余的文件以及空目录删除结束后,将整个流程的执行时间、完成提示、所删内容的列表进行显示,便于用户得知相关的信息。

本实施例通过获取工程中所有项目中所引用的文件与工程目录中实际存在的所有源代码文件,并对其进行对比,如果工程目录中实际存在的源代码文件比工程项目中的引用代码文件多,则说明有多余的源代码文件,将这部分源代码文件挑选出来,从而实现了无用文件的自动判断;通过源代码文件定位到其头文件,并进行删除,在删除文件之后,进一步地删除空目录,从而实现了无用文件的自动删除。通过无用文件的自动判断和自动删除,提高了无用文件的清理速度,降低了项目的工作成本,提高了迭代进度。

实施例二

本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:

获取工程中各项目中的引用代码文件的文件地址;

获取工程目录下各源代码文件的文件地址;

比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;

根据所述多余的源代码文件,定位到对应的头文件;

删除所述多余的源代码文件及其对应的头文件。

进一步地,所述获取工程中各项目中的引用代码文件的文件地址之后,进一步包括:

对所述引用代码文件的文件地址进行去重并整合。

进一步地,所述获取工程目录下各源代码文件的文件地址之后,进一步包括:

根据所述源代码文件的文件名的前后缀,对所述源代码文件进行过滤。

进一步地,所述删除所述多余的源代码文件及其对应的头文件之后,进一步包括:

判断所删除的源代码文件或其对应的头文件所在目录是否为空目录;

若是,则删除所述目录,并判断其父目录是否为空目录。

综上所述,本发明提供的一种iOS工程无用文件的清理方法及计算机可读存储介质,通过获取工程中所有项目中所引用的文件与工程目录中实际存在的所有源代码文件,并对其进行对比,如果工程目录中实际存在的源代码文件比工程项目中的引用代码文件多,则说明有多余的源代码文件,将这部分源代码文件挑选出来,从而实现了无用文件的自动判断;通过源代码文件定位到其头文件,并进行删除,在删除文件之后,进一步地删除空目录,从而实现了无用文件的自动删除。通过无用文件的自动判断和自动删除,提高了无用文件的清理速度,降低了项目的工作成本,提高了迭代进度。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1