您的位置:首页 > 编程语言 > C语言/C++

如何用C语言清空特定文件夹中的所有文件

2011-11-08 10:30 274 查看
最近笔者在做一个有关计算机视觉的项目,需要对提前的视频帧进行实验,当数据量很大且文件夹中的子文件夹和文件很多时,手工删除这些文件不现实,笔者今天写了一个程序,通过机器自动删除所有相关文件,十分快速,删除时间几乎可以不计。

代码如下,仅供参考。

#include "iostream.h"    //由于该博客系统发布是不能显示正常,代码如需调试,只需将改成""即可

#include "string.h"

#include "stdlib.h"

#include "time.h"

#include "math.h"

#include "windows.h"

#include "stdio.h"

#include "shellapi.h"

#include "fstream.h"

#include "string"

using namespace std;



void main()

{

//清空特定文件夹中的所有文件

char* a=".";

char* b="";

WIN32_FIND_DATA FileData,FileData_0;

HANDLE hSearch,hSearch_0;

BOOL fFinished=FALSE;

hSearch=FindFirstFile("C:\\experiment\\results_stat\\*.*",&FileData); //输入特定文件的绝对路径名

if(hSearch==INVALID_HANDLE_VALUE)

{

printf("No files found.");

return;

}

while(!fFinished)

{

if(FileData.cFileName[0]!=a[0]){

b=FileData.cFileName;

string addr=string("C:\\experiment\\results_stat\\")+string(b)+string("\\")+string("*.*"); //输入特定文件的绝对路径名

hSearch_0=FindFirstFile(addr.c_str(),&FileData_0);

while(FindNextFile(hSearch_0, &FileData_0)){

if(FileData_0.cFileName[0]!=a[0]){

string addr_0=string("C:\\experiment\\results_stat\\")+string(b)+string("\\")+FileData_0.cFileName; //输入特定文件的绝对路径名

DeleteFile(addr_0.c_str()); //清空特定文件夹中的子文件夹中的所有文件

}

}

}

if(!FindNextFile(hSearch,&FileData))

{

if(GetLastError()==ERROR_NO_MORE_FILES)

{

fFinished=TRUE;

}

else

{

printf("Couldn't find next file.");

return;

}

}

}

FindClose(hSearch);

FindClose(hSearch_0);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: