上一篇博客写了一个杀不死的进程,现在再写一个删不掉的文件夹(文件同理),所谓删不掉不是真的删不掉而是删掉后马上重新创建。代码如下:
#include <stdio.h> #include <windows.h> #include <io.h> //For access() #define _CRT_SECURE_NO_WARNINGS //消除编译器警告,如fopen不安全 //判断文件或文件目录是否存在 bool checkFileExist(const char *fileName) //不区分大小写 { if (access(fileName,0)) //参数0代表检查文件的存在性 { return false; } return true; } int main() { char *logFile="D:\\Log"; while(1) { if (!checkFileExist(logFile)) //如果该文件夹不存在,则重新创建 { CreateDirectory(logFile,NULL); //参数:文件夹名称,安全属性 } Sleep(100); } return 0; }
想要删掉这个文件夹,必须结束掉这个进程,那么如果该进程使用上一篇介绍的方法使进程无法杀死,那么该文件夹就真的很难删掉了。第一,删除文件夹,进程立刻重建该文件夹;第二,杀死该进程,另外一个进程立刻恢复该进程;第三,杀死另外一个进程,则该进程立刻恢复另外一个进程。如此一来,相互调用相互保护,删也删不掉,杀也杀不死。