CN108897569A - iOS工程无用文件的清理方法及计算机可读存储介质 - Google Patents
iOS工程无用文件的清理方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108897569A CN108897569A CN201810537445.1A CN201810537445A CN108897569A CN 108897569 A CN108897569 A CN 108897569A CN 201810537445 A CN201810537445 A CN 201810537445A CN 108897569 A CN108897569 A CN 108897569A
- Authority
- CN
- China
- Prior art keywords
- file
- source code
- code file
- engineering
- address
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种iOS工程无用文件的清理方法及计算机可读存储介质,方法包括:获取工程中各项目中的引用代码文件的文件地址;获取工程目录下各源代码文件的文件地址;比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;根据所述多余的源代码文件,定位到对应的头文件;删除所述多余的源代码文件及其对应的头文件。本发明通过无用文件的自动判断和自动删除,提高了无用文件的清理速度,降低了项目的工作成本,提高了迭代进度。
Description
技术领域
本发明涉及资源清理技术领域,尤其涉及一种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工程无用文件的清理方法及计算机可读存储介质,通过获取工程中所有项目中所引用的文件与工程目录中实际存在的所有源代码文件,并对其进行对比,如果工程目录中实际存在的源代码文件比工程项目中的引用代码文件多,则说明有多余的源代码文件,将这部分源代码文件挑选出来,从而实现了无用文件的自动判断;通过源代码文件定位到其头文件,并进行删除,在删除文件之后,进一步地删除空目录,从而实现了无用文件的自动删除。通过无用文件的自动判断和自动删除,提高了无用文件的清理速度,降低了项目的工作成本,提高了迭代进度。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种iOS工程无用文件的清理方法,其特征在于,包括:
获取工程中各项目中的引用代码文件的文件地址;
获取工程目录下各源代码文件的文件地址;
比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;
根据所述多余的源代码文件,定位到对应的头文件;
删除所述多余的源代码文件及其对应的头文件。
2.根据权利要求1所述的iOS工程无用文件的清理方法,其特征在于,所述获取工程中各项目中的引用代码文件的文件地址之后,进一步包括:
对所述引用代码文件的文件地址进行去重并整合。
3.根据权利要求1所述的iOS工程无用文件的清理方法,其特征在于,所述获取工程目录下各源代码文件的文件地址之后,进一步包括:
根据所述源代码文件的文件名的前后缀,对所述源代码文件进行过滤。
4.根据权利要求1所述的iOS工程无用文件的清理方法,其特征在于,所述删除所述多余的源代码文件及其对应的头文件之后,进一步包括:
判断所删除的源代码文件或其对应的头文件所在目录是否为空目录;
若是,则删除所述目录,并判断其父目录是否为空目录。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现以下步骤:
获取工程中各项目中的引用代码文件的文件地址;
获取工程目录下各源代码文件的文件地址;
比对所述引用代码文件的文件地址与源代码文件的文件地址,获取多余的源代码文件;
根据所述多余的源代码文件,定位到对应的头文件;
删除所述多余的源代码文件及其对应的头文件。
6.根据权利要求5所述的计算机可读存储介质,其特征在于,所述获取工程中各项目中的引用代码文件的文件地址之后,进一步包括:
对所述引用代码文件的文件地址进行去重并整合。
7.根据权利要求5所述的计算机可读存储介质,其特征在于,所述获取工程目录下各源代码文件的文件地址之后,进一步包括:
根据所述源代码文件的文件名的前后缀,对所述源代码文件进行过滤。
8.根据权利要求5所述的计算机可读存储介质,其特征在于,所述删除所述多余的源代码文件及其对应的头文件之后,进一步包括:
判断所删除的源代码文件或其对应的头文件所在目录是否为空目录;
若是,则删除所述目录,并判断其父目录是否为空目录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810537445.1A CN108897569A (zh) | 2018-05-30 | 2018-05-30 | iOS工程无用文件的清理方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810537445.1A CN108897569A (zh) | 2018-05-30 | 2018-05-30 | iOS工程无用文件的清理方法及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108897569A true CN108897569A (zh) | 2018-11-27 |
Family
ID=64343639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810537445.1A Pending CN108897569A (zh) | 2018-05-30 | 2018-05-30 | iOS工程无用文件的清理方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897569A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377276A (zh) * | 2019-07-19 | 2019-10-25 | 潍柴动力股份有限公司 | 源代码文件管理方法及设备 |
CN110389764A (zh) * | 2019-06-19 | 2019-10-29 | 平安普惠企业管理有限公司 | 无用代码清理方法、设备、存储介质及装置 |
CN111813749A (zh) * | 2020-08-21 | 2020-10-23 | 网易(杭州)网络有限公司 | 文件过滤方法及装置、电子设备、存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024018A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中垃圾元数据的在线回收方法 |
CN103646087A (zh) * | 2013-12-13 | 2014-03-19 | 北京奇虎科技有限公司 | 一种垃圾文件数据清理的方法和装置 |
CN103970532A (zh) * | 2014-04-09 | 2014-08-06 | 国家电网公司 | 一种用于IEC61850协议转换设备的VxWorks操作系统的设计方法 |
CN104408201A (zh) * | 2014-12-16 | 2015-03-11 | 北京奇虎科技有限公司 | 垃圾文件的清理方法及装置 |
US20160232177A1 (en) * | 2015-02-06 | 2016-08-11 | Ashish Govind Khurange | Methods and systems of a dedupe file-system garbage collection |
CN106598828A (zh) * | 2015-10-14 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种源代码中的无效类确定方法及装置 |
CN106599151A (zh) * | 2016-12-07 | 2017-04-26 | Tcl集团股份有限公司 | 一种Android工程无用资源并行清理的方法及系统 |
CN107783766A (zh) * | 2016-08-25 | 2018-03-09 | 腾讯科技(深圳)有限公司 | 对应用程序的文件进行清理的方法和装置 |
-
2018
- 2018-05-30 CN CN201810537445.1A patent/CN108897569A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102024018A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中垃圾元数据的在线回收方法 |
CN103646087A (zh) * | 2013-12-13 | 2014-03-19 | 北京奇虎科技有限公司 | 一种垃圾文件数据清理的方法和装置 |
CN103970532A (zh) * | 2014-04-09 | 2014-08-06 | 国家电网公司 | 一种用于IEC61850协议转换设备的VxWorks操作系统的设计方法 |
CN104408201A (zh) * | 2014-12-16 | 2015-03-11 | 北京奇虎科技有限公司 | 垃圾文件的清理方法及装置 |
US20160232177A1 (en) * | 2015-02-06 | 2016-08-11 | Ashish Govind Khurange | Methods and systems of a dedupe file-system garbage collection |
CN106598828A (zh) * | 2015-10-14 | 2017-04-26 | 阿里巴巴集团控股有限公司 | 一种源代码中的无效类确定方法及装置 |
CN107783766A (zh) * | 2016-08-25 | 2018-03-09 | 腾讯科技(深圳)有限公司 | 对应用程序的文件进行清理的方法和装置 |
CN106599151A (zh) * | 2016-12-07 | 2017-04-26 | Tcl集团股份有限公司 | 一种Android工程无用资源并行清理的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389764A (zh) * | 2019-06-19 | 2019-10-29 | 平安普惠企业管理有限公司 | 无用代码清理方法、设备、存储介质及装置 |
CN110377276A (zh) * | 2019-07-19 | 2019-10-25 | 潍柴动力股份有限公司 | 源代码文件管理方法及设备 |
CN110377276B (zh) * | 2019-07-19 | 2023-05-23 | 潍柴动力股份有限公司 | 源代码文件管理方法及设备 |
CN111813749A (zh) * | 2020-08-21 | 2020-10-23 | 网易(杭州)网络有限公司 | 文件过滤方法及装置、电子设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104793946B (zh) | 基于云计算平台的应用部署方法和系统 | |
RU2565109C2 (ru) | Способ и устройство для восстановления резервной базы данных | |
CN108984652B (zh) | 一种可配置数据清洗系统和方法 | |
CN110532038B (zh) | 一种基于Java智能合约的并行执行方法 | |
EP2110781A1 (en) | Method and system for automatic tracing of a computerized process using a relationship model | |
CN109189469B (zh) | 基于反射的安卓应用微服务化方法及系统 | |
CN104423982B (zh) | 请求的处理方法和处理设备 | |
CN108897569A (zh) | iOS工程无用文件的清理方法及计算机可读存储介质 | |
CN107545015B (zh) | 一种查询故障的处理方法及处理装置 | |
CN104216902B (zh) | 一种基于服务器分页的分页数据装载方法、装置和系统 | |
US20140156603A1 (en) | Method and an apparatus for splitting and recovering data in a power system | |
CN107783770B (zh) | 页面配置更新方法、装置、服务器和介质 | |
CN112099800B (zh) | 代码数据的处理方法、装置和服务器 | |
CN110413272B (zh) | 前端项目构建方法、装置、存储介质及设备 | |
CN112711411A (zh) | 一种基于Kubernetes及docker的CI/CD流水线系统 | |
CN112463450A (zh) | 一种增量备份管理方法、系统、电子设备及存储介质 | |
CN108037967A (zh) | 一种基于多父子结构的菜单加载方法以及电子设备 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
CN113568604B (zh) | 风控策略的更新方法、装置及计算机可读存储介质 | |
CN109063040B (zh) | 客户端程序数据采集方法及系统 | |
CN103092955B (zh) | 检查点操作方法、装置及系统 | |
CN110991983B (zh) | 一种任务处理方法、装置、介质和设备 | |
CN110659295B (zh) | 一种基于hawq记录有效数据的方法、装置和介质 | |
CN109032940B (zh) | 一种测试场景录入方法、装置、设备及存储介质 | |
CN105893445A (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 |