C/C++中删除文件

在C/C++中删除文件有三种方式,假设文件路径及名称为D:/123.txt,Unicode编码

第一种,利用系统system函数调用del函数删除文件。

1 CString strTemp;  // 记录文件路径及名称
2 strTemp.Empty();
3 strTemp.Format(_T("del %s"),_T("D:/123.txt"));
4 system((CW2A)strTemp);

这种方式有个不好的地方时,会弹出dos的黑框,一闪而过,无法做到无痕迹。

第二种,利用C/C++的内部函数,DeleteFile(LPCTSTR lpPath);

这里参数为LPCTSTR类型的,内部有两个重构的函数,分别对应着UNICODE和ANSI的,这里如果lpPath是CString类型的,可直接带入,如需转换。

第三种,利用函数int SHFileOperation(LPSHFILEOPSTRUCT lpFileOp);

有原型可以看出来,参数指向一个SHFILEOPSTRUCT结构体。

typedef struct _SHFILEOPSTRUCT { 
     HWND hwnd;  
     UINT wFunc;  
     LPCWSTR pFrom;
     LPCWSTR pTo;  
     FILEOP_FLAGS fFlags;  
     BOOL fAnyOperationsAborted;
     LPVOID hNameMappings;  
     LPCWSTR lpszProgressTitle;
} SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;

hwnd是Window 句柄,wFunc可以取值如下:

FO_COPY 
FO_DELETE 
FO_MOVE 
FO_RENAME 

分别对应着文件复制,删除,移动,重命名。

pForm文件的路径,pTo一般取NULL,fFlags取值如下:

FOF_ALLOWUNDO 
FOF_NOCONFIRMATION  
FOF_NOCONFIRMMKDIR 
FOF_NOCOPYSECURITYATTRIBS 
FOF_NOERRORUI 
FOF_NORECURSION 
FOF_RENAMEONCOLLISION 

最后函数调用方式是:

SHFILEOPSTRUCT FileOp;

…… // 填充结构体

SHFileOperation(&FileOp);

 

转载于:https://www.cnblogs.com/lianfei/archive/2012/11/13/C_DeleteFile.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值