SHFILEOPSTRUCT pfrom pto 如何赋值

想删除一个文件夹下所有文件,一查RemoveDirectory却查到SHFileOperation函数,它是参数是SHFILEOPSTRUCT这种类型的结构,对于其中pfrom和pto 赋值问题相信烦倒了不少人。下面有两种可行的方式,提供给大家,有不当之处请指出。

 

1.

SHFILEOPSTRUCT pData;

pData.hwnd = NULL;

pData.wFunc = FO_DELETE;

pData.pFrom = "C://abc//def/0";

pData.pTo = NULL;

pData.fFlags = FOF_NOCONFIRMATION;

pData.lpszProgressTitle = NULL;

 

2.

string path = "C://test dir";

TCHAR psz[_MAX_PATH];

memset( psz, 0, _MAX_PATH );

strcpy( psz, path.c_str() );

int len = strlen(psz);

psz[len] = '/0';

 

SHFILEOPSTRUCT pData;

pData.hwnd = NULL;

pData.wFunc = FO_DELETE;

pData.pFrom = psz;

pData.pTo = NULL;

pData.fFlags = FOF_NOCONFIRMATION;

pData.lpszProgressTitle = NULL; 

 

我们提示的路径通常不像第一种情况是固定的,而像第二种情况那样是变量,做那么多操作无非是在字符串后面加上'/0',然而直接加上'/0'是无法成功的,我也不知道原因,这里的做法是模仿CSimpleStringT::AppendChar的做法。大家可以看看它的实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值