文件及文件夹操作

来源:互联网 发布:北京中关村软件培训 编辑:程序博客网 时间:2024/05/22 14:45

1、判断文件或文件夹是否存在

PathFileExists 函数可以用来查看一个文件或文件夹是否存在。

用法:

在头文件中

#include <shlwapi.h>

#pragma comment(lib,"Shlwapi.lib") //如果没有这行,会出现link错误

if (PathFileExists(strDBPath))
{
//存在

}

else //不存在

 2、创建、复制、删除文件或文件夹

1:使用DOS命令,缺点没有可控件,程序不会等DOS命令执行完

char cmd_n[512];

memset(cmd_n,0,512);
sprintf_s(cmd_n,"cmd.exe /c md %svideo",SDPath);
WinExec(cmd_n,SW_HIDE);

memset(cmd_n,0,512);
sprintf_s(cmd_n,"cmd.exe /c copy %s %s",listFile,SDPath);
WinExec(cmd_n,SW_HIDE);

2:使用MFC函数,可控件高,只有在拷贝函数执行完才会执行后面的语句

char temp[512];

CreateDirectory(SDPath+"video",NULL);

memset(temp,0,512);
  m_playlist.GetText(i,temp); //把i行号的内容赋值给temp,m_playlist为列表框
  str=temp;

CopyFile(str,SDPath+"video\\"+str.Mid(str.ReverseFind('\\')+1),TRUE);    //第三个参数true表示不覆盖,false表示覆盖

DeleteFile(%%1);

RemoveDirectory(%%1);

3:使用system命令,这个没有测试

system( "md d:\\aa\\zhao " ); // 在下新建文件夹

system( "del d:\\aa\\zhao " ); // 删除该文件夹下的所有文件

4:使用SHFileOperation,最后使用了这个,因为可以出现进度条,和在XP上的复制文件一样

bool CadceDlg::Copy_File(char *pTo,char *pFrom)
{
SHFILEOPSTRUCT FileOp={0};
//FileOp.fFlags =FOF_NOCONFIRMMKDIR ;                                       //该设置表示是否提示信息,如覆盖时等
FileOp.pFrom = pFrom;
FileOp.pTo = pTo;
FileOp.wFunc = FO_COPY;
return SHFileOperation(&FileOp) == 0;
}

调用时用以下语句

Copy_File("D:\\adplayer\\","D:\\zz\\video\\1.flv"); //此函数复制成功返回true,如果用户取消覆盖或发生错误,会返回false