C++ 目录文件操作(持续更新)

时间:2021-07-15 22:13:55

判断目录是否存在,存在便删除:

#include<sstream>
#include<unistd.h>

void DeleteIfExist(char* path)
{
if(access(path,F_OK)!=0)//适用于linux系统
{
cout<<path<<" not exist, skipped."<<endl;
return;
}
ostringstream cmd;
cmd<<"rm -rvf "<<path;
system(cmd.str().c_str());
}

这里说明两点:

  1. C++库函数remove以及Linux库函数rmdir,只能删除空目录,或者单个文件。
  2. 请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。