一种错误文件处理方法、装置和客户端设备转让专利

申请号 : CN201210398240.2

文献号 : CN102929733B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 谢军样谢重阳

申请人 : 北京奇虎科技有限公司奇智软件(北京)有限公司

摘要 :

本发明公开了一种错误文件处理方法、装置和客户端设备,以解决由于突然断电后应用程序调用产生错误的文件而导致应用程序崩溃的问题。其中,方法包括:读取系统事件日志;解析所述系统事件日志,获取其中的文件错误事件日志;获取所述文件错误事件日志中的错误文件的文件路径;对所述文件路径对应的错误文件进行重命名;当应用程序在调用所述错误文件时,建立一个与所述重命名前的错误文件具有相同文件名的新文件,并调用所述新文件。本发明能够在计算机突然断电并重启之后,对产生错误的文件进行处理,使得应用程序仍然可以正常运行。

权利要求 :

1.一种错误文件处理方法,包括:

在应用程序运行过程中异常断电并重启系统后,通过杀毒软件的扫描过程,调用应用程序编程接口读取系统事件日志;

解析所述系统事件日志,获取其中的文件错误事件日志;

获取所述文件错误事件日志的记录时间;

检测所述文件错误事件日志的记录时间是否满足预设条件;其中,所述预设条件为所述文件错误事件日志的记录时间晚于本次开机时间;

若满足,则获取所述文件错误事件日志中的错误文件的文件路径;

对所述文件路径对应的错误文件进行重命名;

当应用程序在调用所述错误文件时,建立一个与所述重命名前的错误文件具有相同文件名的新文件,并调用所述新文件。

2.如权利要求1所述的方法,所述对所述文件路径对应的错误文件进行重命名,包括:在所述错误文件的文件名后面增加一个文件扩展名。

3.如权利要求2所述的方法,所述文件扩展名为随机数。

4.如权利要求1所述的方法,所述解析所述系统事件日志,获取其中的文件错误事件日志,包括:获取所述系统事件日志中特定的事件ID对应的所有系统事件日志,所述特定的事件ID为包含文件错误事件日志的一类系统事件日志对应的事件ID;

获取所述特定的事件ID对应的所有系统事件日志的事件描述;

查找所述事件描述为文件错误描述的系统事件日志,将所查找到的系统事件日志确定为文件错误事件日志。

5.如权利要求1或4所述的方法,还包括:若不满足,则忽略所述文件错误事件日志。

6.如权利要求5所述的方法,所述检测所述文件错误事件日志的记录时间是否满足预设条件,包括:获取本次开机事件的事件ID;

查找与所述本次开机事件的事件ID相匹配的记录时间,将所述相匹配的记录时间作为本次开机时间;

判断所述文件错误事件日志的记录时间是否晚于所述本次开机时间;

若是,则确定所述文件错误事件日志的记录时间满足预设条件。

7.如权利要求1所述的方法,

通过在文件扫描过程中调用动态链接库中的应用程序编程接口API读取所述系统事件日志。

8.如权利要求1所述的方法,所述错误文件为磁盘错误文件。

9.一种错误文件处理装置,包括:

读取模块,用于在应用程序运行过程中异常断电并重启系统后,通过杀毒软件的扫描过程,调用应用程序编程接口读取系统事件日志;

解析模块,用于解析所述系统事件日志,获取其中的文件错误事件日志;

记录时间获取模块,用于获取所述文件错误事件日志的记录时间;

检测模块,用于检测所述文件错误事件日志的记录时间是否满足预设条件;其中,所述预设条件为所述文件错误事件日志的记录时间晚于本次开机时间;文件路径获取模块,用于当检测模块的检测结果为是时,获取所述文件错误事件日志中的错误文件的文件路径;

重命名模块,用于对所述文件路径对应的错误文件进行重命名;

当应用程序通过在调用所述错误文件时,建立一个与所述重命名前的错误文件具有相同文件名的新文件,并调用所述新文件。

10.如权利要求9所述的装置,所述重命名模块包括:增加扩展名单元,用于在所述错误文件的文件名后面增加一个文件扩展名。

11.如权利要求10所述的装置,所述文件扩展名为随机数。

12.如权利要求9所述的装置,所述解析模块包括:特定系统事件日志获取单元,用于获取所述系统事件日志中特定的事件ID对应的所有系统事件日志,所述特定的事件ID为包含文件错误事件日志的一类系统事件日志对应的事件ID;

事件描述获取单元,用于获取所述特定的事件ID对应的所有系统事件日志的事件描述;

文件错误事件日志查找单元,用于查找所述事件描述为文件错误描述的系统事件日志,将所查找到的系统事件日志确定为文件错误事件日志。

13.如权利要求9或12所述的装置,还包括:忽略模块,用于当检测模块的检测结果为否时,忽略所述文件错误事件日志。

14.如权利要求13所述的装置,所述检测模块包括:事件ID获取单元,用于获取本次开机事件的事件ID;

开机时间查找单元,用于查找与所述本次开机事件的事件ID相匹配的记录时间,将所述相匹配的记录时间作为本次开机时间;

判断单元,用于判断所述文件错误事件日志的记录时间是否晚于所述本次开机时间;

确定单元,用于当判断单元的判断结果为是时,确定所述文件错误事件日志的记录时间满足预设条件。

15.如权利要求9所述的装置,

所述读取模块通过在文件扫描过程中调用动态链接库中的应用程序编程接口API读取所述系统事件日志。

16.如权利要求9所述的装置,所述错误文件为磁盘错误文件。

17.一种客户端设备,包括如上述权利要求9至16任一所述的错误文件处理装置。

说明书 :

一种错误文件处理方法、装置和客户端设备

技术领域

[0001] 本发明涉及网络安全技术领域,具体涉及一种错误文件处理方法、装置和客户端设备。

背景技术

[0002] 应用程序是指为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序。应用程序通过人机交互,调用操作系统中的各种文件,经过复杂的逻辑处理与运算,输出显示结果,以实现其强大的功能。
[0003] 但是,当应用程序在运行过程中,如果发生断电现象,系统需要重新启动,而断电后应用程序运行时所调用的文件会产生错误,因此,系统重启后如果重新运行应用程序,该应用程序再次处理这些产生错误的文件时,将无法正常读写,从而导致应用程序崩溃。

发明内容

[0004] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的错误文件处理装置和客户端设备以及相应的错误文件处理方法。
[0005] 依据本发明的一个方面,提供了一种错误文件处理方法,包括:
[0006] 读取系统事件日志;
[0007] 解析所述系统事件日志,获取其中的文件错误事件日志;
[0008] 获取所述文件错误事件日志中的错误文件的文件路径;
[0009] 对所述文件路径对应的错误文件进行重命名;
[0010] 当应用程序在调用所述错误文件时,建立一个与所述重命名前的错误文件具有相同文件名的新文件,并调用所述新文件。
[0011] 本发明实施例中,对所述文件路径对应的错误文件进行重命名,包括:
[0012] 在所述错误文件的文件名后面增加一个文件扩展名。
[0013] 本发明实施例中,文件扩展名为随机数。
[0014] 本发明实施例中,解析所述系统事件日志,获取其中的文件错误事件日志,包括:
[0015] 获取所述系统事件日志中特定的事件ID对应的所有系统事件日志,所述特定的事件ID为包含文件错误事件日志的一类系统事件日志对应的事件ID;
[0016] 获取所述特定的事件ID对应的所有系统事件日志的事件描述;
[0017] 查找所述事件描述为文件错误描述的系统事件日志,将所查找到的系统事件日志确定为文件错误事件日志。
[0018] 本发明实施例中,在获取所述文件错误事件日志中的错误文件的文件路径之前,还包括:
[0019] 获取所述文件错误事件日志的记录时间;
[0020] 检测所述文件错误事件日志的记录时间是否满足预设条件;
[0021] 若满足,则执行获取所述文件错误事件日志中的错误文件的文件路径的步骤;
[0022] 否则,忽略所述文件错误事件日志。
[0023] 本发明实施例中,预设条件为所述文件错误事件日志的记录时间晚于本次开机时间。
[0024] 本发明实施例中,检测所述文件错误事件日志的记录时间是否满足预设条件,包括:
[0025] 获取本次开机事件的事件ID;
[0026] 查找与所述本次开机事件的事件ID相匹配的记录时间,将所述相匹配的记录时间作为本次开机时间;
[0027] 判断所述文件错误事件日志的记录时间是否晚于所述本次开机时间;
[0028] 若是,则确定所述文件错误事件日志的记录时间满足预设条件。
[0029] 本发明实施例中,通过在文件扫描过程中调用动态链接库中的应用程序编程接口API读取所述系统事件日志。
[0030] 本发明实施例中,错误文件为磁盘错误文件。
[0031] 根据本发明的另一方面,提供了一种错误文件处理装置,包括:
[0032] 读取模块,用于读取系统事件日志;
[0033] 解析模块,用于解析所述系统事件日志,获取其中的文件错误事件日志;
[0034] 文件路径获取模块,用于获取所述文件错误事件日志中的错误文件的文件路径;
[0035] 重命名模块,用于对所述文件路径对应的错误文件进行重命名;
[0036] 当应用程序通过在调用所述错误文件时,建立一个与所述重命名前的错误文件具有相同文件名的新文件,并调用所述新文件。
[0037] 本发明实施例中,重命名模块包括:
[0038] 增加扩展名单元,用于在所述错误文件的文件名后面增加一个文件扩展名。
[0039] 本发明实施例中,文件扩展名为随机数。
[0040] 本发明实施例中,解析模块包括:
[0041] 特定系统事件日志获取单元,用于获取所述系统事件日志中特定的事件ID对应的所有系统事件日志,所述特定的事件ID为包含文件错误事件日志的一类系统事件日志对应的事件ID;
[0042] 事件描述获取单元,用于获取所述特定的事件ID对应的所有系统事件日志的事件描述;
[0043] 文件错误事件日志查找单元,用于查找所述事件描述为文件错误描述的系统事件日志,将所查找到的系统事件日志确定为文件错误事件日志。
[0044] 本发明实施例中,错误文件处理装置还包括:
[0045] 记录时间获取模块,用于在获取所述文件错误事件日志中的错误文件的文件路径之前,获取所述文件错误事件日志的记录时间;
[0046] 检测模块,用于检测所述文件错误事件日志的记录时间是否满足预设条件;
[0047] 所述文件路径获取模块当检测模块的检测结果为是时,获取所述文件错误事件日志中的错误文件的文件路径;
[0048] 忽略模块,用于当检测模块的检测结果为否时,忽略所述文件错误事件日志。
[0049] 本发明实施例中,预设条件为所述文件错误事件日志的记录时间晚于本次开机时间。
[0050] 本发明实施例中,检测模块包括:
[0051] 事件ID获取单元,用于获取本次开机事件的事件ID;
[0052] 开机时间查找单元,用于查找与所述本次开机事件的事件ID相匹配的记录时间,将所述相匹配的记录时间作为本次开机时间;
[0053] 判断单元,用于判断所述文件错误事件日志的记录时间是否晚于所述本次开机时间;
[0054] 确定单元,用于当判断单元的判断结果为是时,确定所述文件错误事件日志的记录时间满足预设条件。
[0055] 本发明实施例中,所述读取模块通过在文件扫描过程中调用动态链接库中的应用程序编程接口API读取所述系统事件日志。
[0056] 本发明实施例中,错误文件为磁盘错误文件。
[0057] 根据本发明的另一方面,提供了一种客户端设备,包括如上所述的错误文件处理装置。
[0058] 根据本发明的错误文件处理方法、装置和客户端设备可以在文件扫描过程中读取系统事件日志,然后解析所述系统事件日志,获取其中的文件错误事件日志,并获取所述文件错误事件日志中的错误文件的文件路径,最后对所述文件路径对应的错误文件进行重命名。由于对错误文件进行了重命名,因此当应用程序在调用所述错误文件时,不能找到原来的文件,此时应用程序将建立一个与重命名前的错误文件具有相同文件名的新文件,并成功调用所述可以正常读写的新文件。由此解决了由于突然断电后应用程序调用产生错误的文件而导致应用程序崩溃的问题,同时也解决了由于应用程序崩溃而弹出错误提示框,从而误导用户误认为电脑中病毒的问题,取得了计算机突然断电并重启之后,应用程序仍然可以正常运行的有益效果。
[0059] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0060] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0061] 图1示出了根据本发明一个实施例的一种错误文件处理方法的流程图;
[0062] 图2示出了根据本发明一个实施例的一种错误文件处理方法的流程图;以及[0063] 图3示出了根据本发明实施例所述的描述磁盘错误文件的示意图;
[0064] 图4示出了根据本发明一个实施例的一种错误文件处理装置的结构框图。

具体实施方式

[0065] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0066] 本发明可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
[0067] 计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0068] 参照图1,示出了根据本发明一个实施例的一种错误文件处理方法的流程图。
[0069] 当应用程序在运行过程中,如果计算机突然断电,系统需要重新启动,而断电后应用程序运行时所调用的文件会产生错误,因此,系统重启后如果重新运行应用程序,该应用程序再次处理这些产生错误的文件时,将无法正常读写,从而导致应用程序崩溃。
[0070] 本发明实施例针对上述情况,首先找出这些产生错误的文件,然后对相应的文件进行处理,从而使得应用程序可以成功调用这些文件。
[0071] 在本实施例中,可以通过杀毒软件的扫描过程获取到这些产生错误的文件。现有杀毒软件一般包括三种扫描模式:全盘扫描模式,快速扫描模式和指定位置扫描模式。其中,全盘扫描模式是针对用户设备中的每个程序和文件进行扫描;快速扫描模式是针对系统内一些关键的软件和重要的目录进行扫描(例如内存、IE、插件、注册表等,重要的目录如c:\windows\system32等);指定位置扫描模式是向用户显示出系统文件的树形目录,包括一层一层的文档目录,以供用户逐层进行选择。
[0072] 由于用户在管理电脑里的文件时,有些用户可能并不完全熟悉操作系统中的各个文件,也不清楚某些文件的用途,因此,本申请实施例设定在快速扫描或者全盘扫描过程中增加一项错误文件扫描功能,从Windows的系统事件日志中收集错误文件,并获取所述错误文件的文件路径显示给用户,引导用户重命名这些文件,从而处理所述错误文件,使以后调用这些文件的应用程序能正常运行。
[0073] 当然,本发明实施例中获取错误文件的过程并不限定于上述扫描方式,本领域技术人员可以根据实际情况进行相应的处理,例如通过独立的错误文件扫描软件获取,等等。
[0074] 具体的,如图1所示,所述方法包括:
[0075] 步骤S101,读取系统事件日志;
[0076] 步骤S102,解析所述系统事件日志,获取其中的文件错误事件日志;
[0077] 步骤S103,获取所述文件错误事件日志中的错误文件的文件路径;
[0078] 首先,在扫描过程中读取出所有的系统事件日志,然后对所述系统事件日志进行解析,从而获取所述系统事件日志中的文件错误事件日志,其中,文件错误事件日志中的文件即为产生错误的文件,最后获取到这些错误文件的文件路径。对于具体的过程,将在下面的实施例中详细介绍。
[0079] 步骤S104,对所述文件路径对应的错误文件进行重命名;
[0080] 当经过上述步骤S101-步骤S103获取到错误文件的文件路径之后,需要将所述文件路径显示给用户,用户得到这些文件路径信息,就可以知道这些错误文件在计算机中存储的位置,也就可以找到这些错误文件。
[0081] 用户找到这些错误文件之后,需要协助系统对这些错误文件进行重命名。具体的,用户可以通过点击“重命名”向系统发出命令,触发系统的重命名功能,当系统接收到用户的重命名命令后,会自动为对应的文件建立一个新的文件名。
[0082] 步骤S105,当应用程序在调用所述错误文件时,建立一个与所述重命名前的错误文件具有相同文件名的新文件,并调用所述新文件。
[0083] 由于这些错误文件的文件名已经发生了改变,因此当系统重新启动后,应用程序在调用这些错误文件时,不能找到原来的文件,此时应用程序将自动新建一个与所述重命名前的错误文件具有相同文件名的新文件,并调用所述新文件,由于新文件中没有产生错误,因此应用程序可以成功调用这些新文件。
[0084] 但是,需要说明的是,新创建的文件是否还能恢复到产生磁盘错误之前的正确文件,是由应用程序去恢复的,可能新文件能够恢复到之前正常的状态(即新文件与原来的文件相同),也有可能不能恢复为原来的文件。而杀毒过程并不能将文件恢复正常,杀毒要解决的问题是在检测出磁盘错误文件之后,对该错误文件进行处理,使得应用程序访问的文件不存在错误,以避免应用程序访问磁盘错误文件而导致应用程序出现异常。对于计算机中的应用程序来说,其具有上述功能,即:当发现所调用的文件不存在的时候,会新建一个相同文件名的新文件。因此,本发明实施例通过对所述错误文件重命名,即可以避免由于调用产生错误的文件而导致的应用程序崩溃的问题。
[0085] 本发明实施例可以在文件扫描过程中读取系统事件日志,然后解析所述系统事件日志,获取其中的文件错误事件日志,并获取所述文件错误事件日志中的错误文件的文件路径,最后对所述文件路径对应的错误文件进行重命名。由于对错误文件进行了重命名,因此当应用程序在调用所述错误文件时,不能找到原来的文件,此时应用程序将建立一个与重命名前的错误文件具有相同文件名的新文件,并成功调用所述新文件。由此解决了由于突然断电后应用程序调用产生错误的文件而导致应用程序崩溃的问题,同时也解决了由于应用程序崩溃而弹出错误提示框,从而误导用户误认为电脑中病毒的问题,使得计算机突然断电并重启之后,应用程序仍然可以正常运行。
[0086] 参照图2,示出了根据本发明一个实施例的一种错误文件处理方法的流程图,[0087] 步骤S201,读取系统事件日志;
[0088] 在本发明实施例中,为了对由于突然断电而产生的错误文件进行处理,首先,在系统重新启动之后,利用杀毒软件进行的扫描的过程中,读取系统事件日志。
[0089] 本实施例可以通过在文件扫描过程中调用动态链接库(Dynamic LinkLibrary,DLL)中的应用程序编程接口(Application Programming Interface,API)读取所述系统事件日志。对于具体的读取过程,本领域技术人员根据实际经验进行处理即可,本发明在此不再详细论述。
[0090] 步骤S202,解析所述系统事件日志,获取其中的文件错误事件日志;
[0091] 读取到上述系统事件日志之后,进一步对所述系统事件日志进行解析,以获取各个日志的详细内容,从而进一步获取其中的文件错误事件日志。
[0092] 在本发明实施例中,对所述系统事件日志进行了分类,其中,当事件ID为某一特定的事件ID(26)的时候,该事件ID所对应的系统事件日志为包含文件错误事件日志的一类系统事件日志。因此,需要首先获取该特定的事件ID对应的系统事件日志,然后再从这些系统事件日志中找出文件错误事件日志。
[0093] 该步骤S202具体包括以下子步骤:
[0094] 子步骤1,获取所述系统事件日志中特定的事件ID对应的所有系统事件日志,所述特定的事件ID为包含文件错误事件日志的一类系统事件日志对应的事件ID;
[0095] 子步骤2,获取所述特定的事件ID对应的所有系统事件日志的事件描述;
[0096] 子步骤3,查找所述事件描述为文件错误描述的系统事件日志,将所查找到的系统事件日志确定为文件错误事件日志。
[0097] 如图3所示,为一种描述磁盘错误文件的示意图,从图中可以看出,通过对系统事件日志进行解析,其中的一个系统事件日志的来源是“ApplicationPopup”,事件ID是“26”,其事件描述文字以“损坏文件:文件或目录”开始,以“已损坏且无法读取,请运行chkdsk工具”结束,该事件描述即为文件错误描述,因此,将所查找到的该系统事件日志确定为文件错误事件日志。
[0098] 当然,除了上述的日志来源、事件ID、事件描述信息,还可以获取到该文件错误事件日志的其他信息,如级别、用户、关键字、任务类别等,本发明对此不再详细论述。
[0099] 步骤S203,获取所述文件错误事件日志的记录时间;
[0100] 步骤S204,检测所述文件错误事件日志的记录时间是否满足预设条件;若满足,则执行步骤S205;否则,忽略所述文件错误事件日志。
[0101] 优选的,在本实施例中,只处理本次开机之后产生的错误文件,对于本次开机之前的错误文件将直接忽略,不对其进行处理。因此,所述预设条件为所述文件错误事件日志的记录时间晚于本次开机时间。
[0102] 首先,在确定系统事件日志中的文件错误事件日志之后,获取该文件错误事件日志的记录时间。其中,所述记录时间可以与所述文件错误事件日志的事件描述、来源、事件ID等信息一同获取。
[0103] 获取到文件错误事件日志的记录时间之后,要检测所述文件错误事件日志的记录时间是否满足预设条件,具体包括以下子步骤:
[0104] 子步骤i,获取本次开机事件的事件ID;
[0105] 子步骤ii,查找与所述本次开机事件的事件ID相匹配的记录时间,将所述相匹配的记录时间作为本次开机时间;
[0106] 例如,本次开机事件的事件ID为6005,在读取系统事件日志时,获取其中的事件ID为6005对应的事件日志的记录时间,该记录时间即为本次开机时间。
[0107] 子步骤iii,判断所述文件错误事件日志的记录时间是否晚于所述本次开机时间;若是,则确定所述文件错误事件日志的记录时间满足预设条件。
[0108] 例如,图3中所获取到的文件错误事件日志的记录时间为2012/8/2818:27:38,并且通过本次开机事件获取到本次开机时间为2012/8/2818:20:38,因此,图3中的文件错误事件日志的记录时间满足预设条件,需要对该文件错误事件日志中的错误文件进行处理。
[0109] 步骤S205,获取所述文件错误事件日志中的错误文件的文件路径;
[0110] 如果在步骤S204中检测出所述文件错误事件日志的记录时间满足预设条件,则获取该文件错误事件日志中的错误文件的文件路径,并将所述文件路径显示给用户,用户通过文件路径即可找到相应的错误文件。
[0111] 例如,图3中所示的文件错误事件日志中的错误文件的文件路径被包含在该日志的事件描述文字“损坏文件:文件或目录”和“已损坏且无法读取”之间,即为“Documents and Settings\jianghonngxia\Local Settings\Temporary Internet Files\Content.IE5\LZLFL3ZV\101010100[1].xml”,用户通过文件路径即可找到相应的错误文件“101010100[1].xml”。
[0112] 步骤S206,对所述文件路径对应的错误文件进行重命名;
[0113] 在找到上述错误文件“101010100[1].xml”之后,用户通过点击“重命名”可以触发系统自动对该文件执行重命名过程。本实施例中,可以通过系统的API进行文件的重命名,对于具体的过程,本发明实施例在此不再详细介绍。
[0114] 具体的,所述对所述文件路径对应的错误文件进行重命名,包括:
[0115] 在所述错误文件的文件名后面增加一个文件扩展名,其中,所述文件扩展名为随机数。
[0116] 例如,经过重命名后,系统将原来的错误文件“101010100[1].xml”的文件名修改为“101010100[1].xml.123”,即在原有的文件名后面增加了一组随机数“123”。
[0117] 当然,本发明实施例中的重命名方式并不限定上述增加随机数的方法,任何其他的重命名方式都是可行的,只要保证新文件的文件名与产生错误的文件的文件名不相同即可。
[0118] 例如,可以通过在原文件名的基础上增加扩展名的方式进行重命名,增加扩展名的重命名方式简单且易于鉴别,常见的文件扩展名包括“.exe”、“.dll”、“.com”、“.sys”、“.vbs”等。对于上述错误文件“101010100[1].xml”,可以在其文件名后面增加扩展名“.exe”,即将文件名修改为“101010100[1].xml.exe”。当然,还可以增加其他扩展名,本实施例对此并不加以限制。步骤S207,当应用程序在调用所述错误文件时,建立一个与所述重命名前的错误文件具有相同文件名的新文件,并调用所述新文件。
[0119] 当应用程序在调用所述错误文件时,由于系统将原有的错误文件“101010100[1].xml”的文件名修改为“101010100[1].xml.123”,因此,应用程序将不能找到原有的错误文件“101010100[1].xml”。此时,应用程序将建立一个与所述重命名前的错误文件具有相同文件名的新文件,即重新建立一个文件名为“101010100[1].xml”的新文件,这个新文件是可以被正常读写的,因此,应用程序可以成功调用所述新文件。
[0120] 在本实施例中,所述错误文件可以为磁盘错误文件,当然也可以为系统中的其他文件,本发明对此并不加以限制。
[0121] 本实施例相对于上述实施例的改进之处在于,规定了处理错误文件的条件,只对本次开机之后产生的错误文件进行处理,对于本次开机之前的错误文件可能在系统重启之后不会去关注,因此对于这些错误文件不进行处理,从而进一步提高了错误文件的处理效率。
[0122] 需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请所必需的。
[0123] 参照图4,示出了根据本发明一个实施例的一种错误文件处理装置的结构框图,在本发明实施例中,所述错误文件为磁盘错误文件。所述装置包括:读取模块401、解析模块402、记录时间获取模块403、检测模块404、忽略模块405、文件路径获取模块406、重命名模块407。
[0124] 其中,
[0125] 读取模块401,用于读取系统事件日志;
[0126] 所述读取模块通过在文件扫描过程中调用动态链接库中的应用程序编程接口API读取所述系统事件日志。
[0127] 解析模块402,用于解析所述系统事件日志,获取其中的文件错误事件日志;
[0128] 所述解析模块402包括:
[0129] 特定系统事件日志获取单元,用于获取所述系统事件日志中特定的事件ID对应的所有系统事件日志,所述特定的事件ID为包含文件错误事件日志的一类系统事件日志对应的事件ID;
[0130] 事件描述获取单元,用于获取所述特定的事件ID对应的所有系统事件日志的事件描述;
[0131] 文件错误事件日志查找单元,用于查找所述事件描述为文件错误描述的系统事件日志,将所查找到的系统事件日志确定为文件错误事件日志。
[0132] 记录时间获取模块403,用于在获取所述文件错误事件日志中的错误文件的文件路径之前,获取所述文件错误事件日志的记录时间;
[0133] 检测模块404,用于检测所述文件错误事件日志的记录时间是否满足预设条件;
[0134] 当检测结果为是时,所述文件路径获取模块406获取所述文件错误事件日志中的错误文件的文件路径;
[0135] 当检测结果为否时,所述忽略模块405忽略所述文件错误事件日志。
[0136] 其中,所述预设条件为所述文件错误事件日志的记录时间晚于本次开机时间,所述检测模块404包括:
[0137] 事件ID获取单元,用于获取本次开机事件的事件ID;
[0138] 开机时间查找单元,用于查找与所述本次开机事件的事件ID相匹配的记录时间,将所述相匹配的记录时间作为本次开机时间;
[0139] 判断单元,用于判断所述文件错误事件日志的记录时间是否晚于所述本次开机时间;
[0140] 确定单元,用于当判断单元的判断结果为是时,确定所述文件错误事件日志的记录时间满足预设条件。
[0141] 忽略模块405,用于当检测模块的检测结果为否时,忽略所述文件错误事件日志。
[0142] 文件路径获取模块406,用于获取所述文件错误事件日志中的错误文件的文件路径;
[0143] 重命名模块407,用于对所述文件路径对应的错误文件进行重命名;
[0144] 所述重命名模块407包括:
[0145] 增加扩展名单元,用于在所述错误文件的文件名后面增加一个文件扩展名。其中,所述文件扩展名为随机数。
[0146] 由于对所述错误文件进行了重命名,因此当应用程序在调用所述错误文件时,将不能找到原有的错误文件,此时应用程序利用其自动新建文件功能建立一个与所述重命名前的错误文件具有相同文件名的新文件,并成功调用所述新文件。
[0147] 对于上述错误文件处理装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1和图2所示方法实施例的部分说明即可。
[0148] 本发明实施例可以在文件扫描过程中读取系统事件日志,然后解析所述系统事件日志,获取其中的文件错误事件日志,并获取所述文件错误事件日志中的错误文件的文件路径,最后对所述文件路径对应的错误文件进行重命名。由于对错误文件进行了重命名,因此当应用程序在调用所述错误文件时,不能找到原来的文件,此时应用程序将建立一个与重命名前的错误文件具有相同文件名的新文件,并成功调用所述新文件。由此解决了由于突然断电后应用程序调用产生错误的文件而导致应用程序崩溃的问题,同时也解决了由于应用程序崩溃而弹出错误提示框,从而误导用户误认为电脑中病毒的问题,使得计算机突然断电并重启之后,应用程序仍然可以正常运行。
[0149] 基于上述错误文件处理装置实施例,本发明实施例还提供了一种包含该装置的客户端设备。所述客户端设备通过读取系统事件日志,并解析所述系统事件日志,获取其中的文件错误事件日志,然后获取所述文件错误事件日志中的错误文件的文件路径,最后对所述文件路径对应的错误文件进行重命名,当应用程序在调用所述错误文件时,由于不能找到原有的错误文件,因此应用程序会自动建立一个与所述重命名前的错误文件具有相同文件名的新文件,并成功调用所述新文件。从而解决了由于突然断电后应用程序调用产生错误的文件而导致应用程序崩溃的问题,同时也解决了由于应用程序崩溃而弹出错误提示框,从而误导用户误认为电脑中病毒的问题,使得计算机突然断电并重启之后,应用程序仍然可以正常运行。
[0150] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0151] 本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本申请的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
[0152] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0153] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0154] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0155] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0156] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0157] 本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的错误文件处理装置和客户端设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0158] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。