一种应用程序文件搬移方法及系统的制作方法

文档序号:6338571阅读:277来源:国知局
专利名称:一种应用程序文件搬移方法及系统的制作方法
技术领域
本发明属于计算机技术领域,尤其涉及一种应用程序文件搬移方法及系统。
背景技术
磁盘(特别是C盘)空间占满后,会导致系统运行变慢,某些操作无法正常进行,另外,在一些情况下,用户希望将已安装的应用程序进行移动,现有技术对应用程序进行搬移的过程中,当应用程序正在运行或该应用程序的动态链接库(dll)正在被其他程序使用(例如后台运行的程序)时,难以实现应用程序文件的搬移,导致应用程序搬移过程复杂,搬移成功率低。

发明内容
本发明实施例的目的在于提供一种应用程序文件搬移方法及系统,旨在解决由于现有技术对应用程序进行搬移的过程中,当应用程序正在运行或该应用程序的动态链接库正在被其他程序使用时,难以实现应用程序文件的搬移,导致应用程序搬移过程复杂,搬移成功率低的问题。本发明实施例是这样实现的,一种应用程序文件搬移方法,所述方法包括下述步骤将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹;当复制所述源文件夹成功时,删除所述源文件夹;当删除所述源文件夹失败时,根据收集的所述应用程序文件占用信息,对所述应用程序文件进行解锁;当对所述应用程序文件解锁成功时,删除所述源文件夹,建立所述目标文件夹中应用程序文件的软链接。本发明实施例的另一目的在于提供一种应用程序文件搬移系统,所述系统包括文件夹复制单元,用于将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹;文件夹删除单元,用于当所述文件夹复制单元复制文件夹成功时,删除所述源文件夹;文件解锁单元,用于当所述文件夹删除单元删除文件夹失败时,根据收集的应用程序文件占用信息,对所述应用程序文件进行解锁;以及软链接建立单元,用于当所述文件解锁单元对应用程序文件解锁成功时,删除所述应用程序文件所在源文件夹,建立复制到预设目标文件夹中应用程序文件的软链接。本发明实施例将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹,当复制源文件夹成功时,删除源文件夹,当删除源文件夹失败时,根据收集的该应用程序文件占用信息,对应用程序文件进行解锁,当对应用程序文件解锁成功时,删除源文件夹,建立应用程序文件的软链接,实现应用程序的搬移,解决了由于现有技术对应用程序文件进行搬移的过程中,当应用程序正在运行或该应用程序的动态链接库正在被其他程序使用时,难以实现应用程序文件的搬移,导致应用程序文件搬移过程复杂,搬移成功率低的问题,简化了应用程序文件的搬移操作,提高了应用程序文件搬移的自动化程度,以及应用程序文件搬移的成功率。


图1是本发明第一实施例提供的应用程序文件搬移方法的实现流程图;图2是本发明第三实施例提供的应用程序文件搬移方法的实现流程图;图3是本发明第三实施例提供的应用程序文件搬移方法的实现流程图;图4是本发明第四实施例提供的应用程序文件搬移系统的结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例根据收集的待搬移应用程序文件占用信息,当删除应用程序文件所在源文件夹失败时,对应用程序文件进行解锁,最终实现应用程序的搬移,简化了应用程序文件的搬移操作,提高了应用程序文件搬移的自动化程度,以及应用程序文件搬移的成功率。本发明实施例提供了一种应用程序文件搬移方法,所述方法包括下述步骤将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹;当复制所述源文件夹成功时,删除所述源文件夹;当删除所述源文件夹失败时,根据收集的所述应用程序文件占用信息,对所述应用程序文件进行解锁;当对所述应用程序文件解锁成功时,删除所述源文件夹,建立所述目标文件夹中应用程序文件的软链接。本发明实施例还提供了一种应用程序文件搬移系统,所述系统包括文件夹复制单元,用于将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹;文件夹删除单元,用于当所述文件夹复制单元复制文件夹成功时,删除所述源文件夹;文件解锁单元,用于当所述文件夹删除单元删除文件夹失败时,根据收集的应用程序文件占用信息,对所述应用程序文件进行解锁;以及软链接建立单元,用于当所述文件解锁单元对应用程序文件解锁成功时,删除所述应用程序文件所在源文件夹,建立复制到预设目标文件夹中应用程序文件的软链接。本发明实施例将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹,当复制源文件夹成功时,删除源文件夹,当删除源文件夹失败时,根据收集的该应用程序文件占用信息,对应用程序文件进行解锁,当对应用程序文件解锁成功时,删除源文件夹,建立应用程序文件的软链接,实现应用程序的搬移,解决了由于现有技术对应用程序文件进行搬移的过程中,当应用程序正在运行或该应用程序的动态链接库正在被其他程序使用时,难以实现应用程序文件的搬移,导致应用程序文件搬移过程复杂,搬移成功率低的问题,简化了应用程序文件的搬移操作,提高了应用程序文件搬移的自动化程度,以及应用程序文件搬移的成功率。以下结合具体实施例对本发明的具体实现进行详细描述实施例一图1示出了本发明第一实施例提供的应用程序文件搬移方法的实现流程,详述如下在步骤SlOl中,将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹。在本发明实施例中,当计算机终端或服务器的磁盘分区可用空间较少,或接受到用户输入的应用程序文件搬移请求时,将待搬移应用程序文件所在源文件夹复制到预先设置的目标文件夹,在复制源文件夹的步骤前,可以预先设置应用程序被搬移到的目标文件夹,也可以以默认的形式将目标文件夹预置为磁盘占用比例最小的磁盘文件夹中。在步骤S102中,当复制源文件夹成功时,删除待搬移应用程序文件所在源文件夹。在本发明实施例中,当复制待搬移应用程序文件所在源文件夹成功时,删除源文件夹,从而减少应用程序文件的磁盘占用空间,在具体的实施过程中,源文件夹的复制成功率较高,在个别情况下,当复制源文件夹失败时,则进行复制文件夹步骤的回滚,或进行与步骤S103相同的解锁操作。在步骤S103中,当删除源文件夹失败时,根据收集的应用程序文件占用信息,对应用程序文件进行解锁。在本发明实施例中,当应用程序文件被加载、应用程序文件被内存映射、或应用程序文件被独占使用时,例如,应用程序文件正在运行或该应用程序文件的动态链接库(dll)正在被其他程序使用(例如后台运行的程序),则会使得应用程序文件被锁定,导致源文件夹删除失败,此时,应根据收集的应用程序文件占用信息,对应用程序文件进行解锁。具体地,可以通过遍历进程列表、枚举进程的虚拟地址空间、以及枚举系统句柄表的方式收集该待搬移应用程序文件的占用信息。在步骤S104中,当对应用程序文件解锁成功时,删除源文件夹,建立目标文件夹中应用程序文件的软链接。软链接又叫符号链接,软链接包含了另一个文件的路径名,可以是任意文件或目录,可以链接不同文件系统的文件,在本发明实施例中,当对应用程序文件解锁成功后,删除源文件夹,建立目标文件夹中应用程序文件的软链接,从而实现对应用程序文件的搬移。在本发明实施例中,将待搬移应用程序文件所在源文件夹复制到预先设置的目标文件夹,当复制源文件夹成功时,删除源文件夹,当删除源文件夹失败时,通过遍历进程列表、枚举进程的虚拟地址空间、以及枚举系统句柄表的方式收集该待搬移应用程序文件的占用信息,对应用程序文件进行解锁,当对应用程序文件解锁成功时,删除源文件夹,建立应用程序文件的软链接,实现应用程序文件的搬移,从而简化了应用程序文件的搬移操作,提高了应用程序文件的搬移成功率。实施例二
图2示出了本发明第二实施例提供的应用程序文件搬移方法的实现流程,详述如下在步骤S201中,将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹。在步骤S202中,判断复制源文件夹是否成功,当复制源文件夹成功时,执行步骤S203,否则执行步骤S209。在步骤S203中,删除待搬移应用程序文件所在源文件夹。在步骤S204中,判断删除待搬移应用程序文件所在源文件夹是否成功,当删除成功时,执行步骤S208,否则执行步骤S205。在步骤S205中,根据收集的应用程序文件占用信息,对应用程序文件进行解锁。在步骤S206中,判断应用程序文件解锁是否成功,解锁成功则执行步骤S207,否则执行步骤S209。在步骤S208中,建立目标文件夹中应用程序文件的软链接。在步骤S209中,对对应的操作进行回滚。在本发明实施例中,当步骤S201中将待搬移应用程序文件夹所在源文件夹复制到预设的目标文件夹失败时,则步骤S209回滚操作具体为回滚该复制操作,当步骤S205中根据收集的应用程序文件占用信息,对应用程序文件解锁失败时,则步骤209回滚操作具体为回滚解锁和将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹的操作。实施例三在本发明实施例中,当应用程序文件被加载、应用程序文件被内存映射、或应用程序文件被独占使用时,,则会使得应用程序文件被锁定,导致源文件夹删除失败,此时,应根据收集的应用程序文件占用信息,对应用程序文件进行解锁。图3示出了本发明第三实施例提供的应用程序文件搬移方法的实现流程,详述如下在步骤S301中,将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹。在步骤S302中,判断复制源文件夹是否成功,当复制源文件夹成功时,执行步骤S303,否则执行步骤S315。在步骤S303中,删除待搬移应用程序文件所在源文件夹。在步骤S304中,判断删除待搬移应用程序文件所在源文件夹是否成功,当删除成功时,执行步骤S314,否则执行步骤S305。在步骤S305中,判断应用程序文件是否被加载,是则执行步骤S306,否则执行步骤 S308。在步骤S306中,卸载加载的应用程序文件。在本发明实施例中,在步骤S305中,可以通过遍历进程列表中运行的进程名判断待搬移的应用程序文件是否被加载,包括扫描加载的dll文件、exe文件等文件信息,当收集到加载信息后,卸载加载的应用程序文件,具体可以通过强制结束加载应用程序文件的进程,或通过调用Freelibrary来移除对其它进程对dll文件的调用等。在步骤S307中,判断卸载加载的应用程序文件是否成功,是则执行步骤S308,否则执行步骤S315。在步骤S308中,判断应用程序文件是否被内存映射,是则执行步骤S309,否则执行步骤S311。在步骤S309中,卸载应用程序文件的内存映射。在本发明实施例中,在步骤S308中,可以通过枚举进程的虚拟地址空间,检索被内存映射的该应用程序文件。被内存映射的应用程序文件,主要是指通过CreateFileMapping, MapViewOf^ection等函数进行内存映射的应用程序文件,此时,可以通过NtUnMapViewOfSection等函数进行内存映射的卸载。在步骤S310中,判断被内存映射的应用程序文件是否被卸载成功,是则执行步骤S311,否则 S315。在步骤S311中,结束对应用程序文件的独占使用。在本发明实施例中,当应用程序文件被独占使用时,结束对应用程序文件的独占使用,可以通过枚举系统句柄表的方式判断应用程序文件是否被独占使用,具体地,当检索到应用程序文件被独占使用的句柄时,使用DuplicateHandle函数来复制该句柄,进而结束其它应用程序对该应用程序文件独占使用的句柄,释放该句柄。在具体实施过程中,当句柄被句柄标志SetHandlehformation函数等设置为受保护的句柄时,应使用对应的函数(例如,NtSetInformationObject函数)去除其保护属性,最后结束对句柄的独占使用,从而实现结束对应用程序文件的独占使用。在步骤S312中,判断应用程序文件的独占使用是否被成功结束,是则执行步骤S313,否则执行步骤S315。在步骤S313中,删除源文件夹。在本发明实施例中,当完成应用程序文件被加载的卸载、被内存映射的卸载、或被独占使用的结束后,从而完成了对待搬移应用程序文件的解锁,进而删除待搬移应用程序文件所在源文件夹。在步骤S314中,建立目标文件夹中应用程序文件的软链接。在步骤S315中,对对应用的操作进行回滚。在本发明实施例中,导致所有的解锁操作失败的原因可能是应用程序文件夹路径为操作系统的系统目录,或解锁风险太大,可能导致操作系统的崩溃,此时应进行操作的回
滚ο当步骤S301中将待搬移应用程序文件夹所在源文件夹复制到预设的目标文件夹失败时,则步骤S315回滚操作具体为回滚该复制操作;当步骤S306中对应用程序文件加载的卸载失败时,则步骤S315的回滚操作具体为回滚包括步骤S306至S301的所有操作;当步骤309中卸载应用程序文件的内存映射失败时,则步骤S315的回滚操作具体为回滚包括步骤S309至S301的所有操作;当步骤S311结束对应用程序文件的独占使用失败时,则步骤S315的回滚操作具体为回滚包括步骤S311至S301的所有操作。在本发明实施例中,根据应用程序文件被锁定的占用信息种类,例如,应用程序文件被加载、应用程序文件被内存映射、以及应用程序文件被独占使用对应用程序文件分别进行解锁,实现对应用程序文件的搬移,当应用程序文件夹路径为操作系统的系统目录,或解锁风险太大,可能导致操作系统的崩溃,进行操作的回滚,从而保证系统的稳定性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。实施例四图4示出了本发明第四实施例提供的应用程序文件搬移系统的结构,为了便于说明,仅示出了与本发明实施例相关的部分。该应用程序文件搬移系统可以是运行于计算机终端、或服务器内的软件单元,也可以作为独立的挂件集成到这些设备中或者运行于这些设备的应用系统中,该应用程序文件搬移系统包括搬移设置单元41、文件夹复制单元42、文件夹删除单元43、文件解锁单元44、软链接建立单元45以及回滚单元46,其中搬移设置单元41设置待搬移应用程序文件,以及搬移的目标文件夹。文件夹复制单元42将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹;当文件夹复制单元42复制文件夹成功时,文件夹删除单元43删除待搬移应用程序文件所在源文件夹;文件解锁单元44当文件夹删除单元43删除文件夹失败时,根据收集的应用程序文件占用信息,对应用程序文件进行解锁。在本发明实施例中,根据应用程序文件的占用信息的种类不同,例如应用程序文件被加载、应用程序文件被内存映射、以及应用程序文件被独占使用,文件解锁单元44具体包括文件卸载单元441、内存卸载单元442和内存卸载单元442,其中文件卸载单元441,用于当应用程序文件占用信息为所述应用程序文件被加载的信息时,卸载加载的应用程序文件;内存卸载单元442,用于当应用程序文件占用信息为应用程序文件被内存映射的信息时,对应用程序文件进行解锁的步骤具体为卸载应用程序文件的内存映射;以及独占使用结束单元443,用于当应用程序文件占用信息为应用程序文件被独占使用的信息时,结束对应用程序文件的独占使用。软链接建立单元45,用于当文件解锁单元对应用程序文件解锁成功时,删除应用程序文件所在源文件夹,建立复制到预设目标文件夹中应用程序文件的软链接。回滚单元46,用于当文件解锁单元44对应用程序文件解锁失败时,回滚对应用程序文件解锁、以及将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹的步骤。本发明实施例根据收集的待搬移应用程序文件占用信息,当删除应用程序文件所在源文件夹失败时,对应用程序文件进行解锁,实现应用程序的搬移,解决了由于现有技术对应用程序进行搬移的过程中,当应用程序文件正在运行或该应用程序文件的动态链接库正在被其他程序使用时,难以实现应用程序文件的搬移,导致应用程序文件搬移过程复杂,搬移成功率低的问题,简化了应用程序文件的搬移操作,提高了应用程序文件搬移的自动化程度,以及应用程序文件搬移的成功率。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种应用程序文件搬移方法,其特征在于,所述方法包括下述步骤将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹;当复制所述源文件夹成功时,删除所述源文件夹;当删除所述源文件夹失败时,根据收集的所述应用程序文件占用信息,对所述应用程序文件进行解锁;当对所述应用程序文件解锁成功时,删除所述源文件夹,建立所述目标文件夹中应用程序文件的软链接。
2.如权利要求1所述的方法,其特征在于,所述应用程序文件占用信息为所述应用程序文件被加载的信息、所述应用程序文件被内存映射的信息、或所述应用程序文件被独占使用的信息。
3.如权利要求2所述的方法,其特征在于,当所述应用程序文件占用信息为所述应用程序文件被加载的信息时,所述对所述应用程序文件进行解锁的步骤具体为卸载加载的所述应用程序文件;当所述应用程序文件占用信息为所述应用程序文件被内存映射的信息时,所述对所述应用程序文件进行解锁的步骤具体为卸载所述应用程序文件的内存映射;当所述应用程序文件占用信息为所述应用程序文件被独占使用的信息时,所述对所述应用程序文件进行解锁的步骤具体为结束对所述应用程序文件的独占使用。
4.如权利要求1所述的方法,其特征在于,所述复制待搬移应用程序文件所在源文件夹的步骤之前还包括下述步骤设置待搬移应用程序文件,以及搬移的目标文件夹。
5.如权利要求1所述的方法,其特征在于,当对所述应用程序文件解锁失败时,回滚对所述应用程序文件解锁,以及所述将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹的步骤。
6.如权利要求1所述的方法,其特征在于,通过遍历进程列表、枚举进程的虚拟地址空间、以及枚举系统句柄表的方式收集所述应用程序文件占用信息。
7.一种应用程序文件搬移系统,其特征在于,所述系统包括文件夹复制单元,用于将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹;文件夹删除单元,用于当所述文件夹复制单元复制文件夹成功时,删除所述源文件夹;文件解锁单元,用于当所述文件夹删除单元删除文件夹失败时,根据收集的应用程序文件占用信息,对所述应用程序文件进行解锁;以及软链接建立单元,用于当所述文件解锁单元对应用程序文件解锁成功时,删除所述应用程序文件所在源文件夹,建立复制到预设目标文件夹中应用程序文件的软链接。
8.如权利要求7所述的系统,其特征在于,所述应用程序文件占用信息为所述应用程序文件被加载的信息、所述应用程序文件被内存映射的信息、或所述应用程序文件被独占使用的信息。
9.如权利要求7所述的系统,其特征在于,所述文件解锁单元具体包括文件卸载单元,用于当应用程序文件占用信息为所述应用程序文件被加载的信息时,卸载加载的所述应用程序文件;内存卸载单元,用于当应用程序文件占用信息为所述应用程序文件被内存映射的信息时,所述对所述应用程序文件进行解锁的步骤具体为卸载所述应用程序文件的内存映射;以及独占使用结束单元,用于当应用程序文件占用信息为所述应用程序文件被独占使用的信息时,结束对所述应用程序文件的独占使用。
10.如权利要求7所述的系统,其特征在于,所述系统还包括搬移设置单元,用于设置待搬移应用程序文件,以及搬移的目标文件夹。
11.如权利要求7所述的系统,其特征在于,所述系统还包括回滚单元,用于当所述文件解锁单元对应用程序文件解锁失败时,回滚对所述应用程序文件解锁,以及将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹的步骤。
全文摘要
本发明适用于计算机技术领域,提供了一种应用程序文件搬移方法及系统,方法包括将待搬移应用程序文件所在源文件夹复制到预设的目标文件夹;当复制所述源文件夹成功时,删除所述源文件夹;当删除所述源文件夹失败时,根据收集的所述应用程序文件占用信息,对所述应用程序文件进行解锁;当对所述应用程序文件解锁成功时,删除所述源文件夹,建立所述目标文件夹中应用程序文件的软链接。本发明根据收集的待搬移应用程序文件占用信息,当删除应用程序文件所在源文件夹失败时,对应用程序文件进行解锁,从而实现应用程序文件的搬移,解决了搬移成功率低的问题,简化了应用程序文件的搬移操作,提高了应用程序文件搬移的自动化程度,及搬移的成功率。
文档编号G06F17/30GK102567323SQ201010586809
公开日2012年7月11日 申请日期2010年12月14日 优先权日2010年12月14日
发明者拓鑫, 毕廷礼 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1