200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > c语言调用DOS命令删除文件 对比:使用cmd命令删除文件夹下所有文件 / 使用DeleteFile函数...

c语言调用DOS命令删除文件 对比:使用cmd命令删除文件夹下所有文件 / 使用DeleteFile函数...

时间:2019-01-06 03:43:26

相关推荐

c语言调用DOS命令删除文件 对比:使用cmd命令删除文件夹下所有文件 / 使用DeleteFile函数...

先说结论:使用命令行的rmdir总是可以把文件/文件夹清除,但是MFC自己的 DeleteFile函数有时出现删除失灵的情况(qt的QDir::removeRecursively()也有类似问题)。

1) 使用cmd命令删除文件夹 出处:https://www..com/jiangyi666/p/6638815.html

rmdir 删除整个目录

好比说我要删除 222 这个目录下的所有目录和档案,这语法就是:

rmdir /s/q 222

其中:

/s 是代表删除所有子目录跟其中的档案。

/q 是不要它在删除档案或目录时,不再问我 Yes or No 的动作。

要删除的目录前也可以指定路径,如:

rmdir /s/q d:\123\abc

这意思是告诉计算机,把磁盘驱动器 D 的123资料夹里面的abc资料夹中的所有东西全部删除,同时也不要再问我是否要删除。

2)利用CFileFind结合DeleteFile删除文件夹示例。

#include

void vRemoveDirRecursively(CString dir)

{

CFileFind finder;

CString path;

path.Format("%s\\*.*", dir);

bool bExist = finder.FindFile(path);

while(bExist)

{

bExist = finder.FindNextFile();

CString cstrDir = finder.GetFilePath();//

if(!finder.IsDots())

{

if(finder.IsDirectory())

{

vRemoveDirRecursively(cstrDir);

RemoveDirectory(cstrDir);

}

else

{

DeleteFile(cstrDir);

}

}

}

DeleteFile(dir);

}

int main(void)

{

//vRemoveDirRecursively(_T("C:\\code\\vc\\1\\ipch"));

system("rmdir /s/q C:\\code\\vc\\1\\ipch");

return 0;

}

实测发现,vRemoveDirRecursively()不能总是删除文件夹,但是rmdir绝对可靠。

调用system会造成控制台一闪而过的现象,可以用以下语句取代 system:

WinExec("Cmd.exe /C rmdir /s/q C:\\code\\vc\\1\\ipch", SW_HIDE);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。