1、复制文件
#include <Shlobj.h>
#pragma comment(lib, "shell32.lib")
BOOL DeleteFile(LPCTSTR lpszFileName)
{
SHFILEOPSTRUCT FileOp;
FileOp.fFlags = FOF_NOCONFIRMATION | FOF_SILENT;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszFileName; // 文件名请以\0\0结尾
FileOp.pTo = NULL;
FileOp.wFunc = FO_DELETE;
BOOL bRet = ::SHFileOperation(&FileOp) == 0;
if (!bRet && GetLastError() == ERROR_FILE_NOT_FOUND)
return TRUE;
return bRet;
}
2、剪切文件
#include <Shlobj.h>
#pragma comment(lib, "shell32.lib")
BOOL MoveFile(LPCTSTR lpszExistingFileName, LPCTSTR lpszNewFileName)
{
SHFILEOPSTRUCT FileOp;
FileOp.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_NOCONFIRMMKDIR;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszExistingFileName; // 文件名请以\0\0结尾
FileOp.pTo = lpszNewFileName; // 文件名请以\0\0结尾
FileOp.wFunc = FO_MOVE;
BOOL bRet = ::SHFileOperation(&FileOp) == 0;
if (!bRet && GetLastError() == ERROR_FILE_NOT_FOUND)
return TRUE;
return bRet;
}
3、删除文件
#include <Shlobj.h>
#pragma comment(lib, "shell32.lib")
BOOL DeleteFile(LPCTSTR lpszFileName)
{
SHFILEOPSTRUCT FileOp;
FileOp.fFlags = FOF_NOCONFIRMATION | FOF_SILENT;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszFileName; // 文件名请以\0\0结尾
FileOp.pTo = NULL;
FileOp.wFunc = FO_DELETE;
BOOL bRet = ::SHFileOperation(&FileOp) == 0;
if (!bRet && GetLastError() == ERROR_FILE_NOT_FOUND)
return TRUE;
return bRet;
}
4、重命名文件
#include <Shlobj.h>
#pragma comment(lib, "shell32.lib")
BOOL RenameFile(LPCTSTR lpszExistingFileName, LPCTSTR lpszNewFileName)
{
SHFILEOPSTRUCT FileOp;
FileOp.fFlags = FOF_NOCONFIRMATION | FOF_SILENT;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;// HWND_DESKTOP
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszExistingFileName; // 文件名请以\0\0结尾
FileOp.pTo = lpszNewFileName; // 文件名请以\0\0结尾
FileOp.wFunc = FO_RENAME;
BOOL bRet = ::SHFileOperation(&FileOp) == 0;
if (!bRet && GetLastError() == ERROR_FILE_NOT_FOUND)
return TRUE;
return bRet;
}
5、创建文件夹
#include <dbgHelp.h>
#pragma comment(lib, "dbghelp.lib")
void CreateDirectory(LPCTSTR lpszDirectory)
{
// 文件夹名称请以"\"结尾
if (!::PathIsDirectory(lpszDirectory))
{
::MakeSureDirectoryPathExists(lpszDirectory);
}
}