我需要格式化一個字符串爲雙空終止的字符串才能使用SHFileOperation。雙空終止的字符串
有趣的部分是我發現下面的工作之一,但不能同時:
// Example 1
CString szDir(_T("D:\\Test"));
szDir = szDir + _T('\0') + _T('\0');
// Example 2
CString szDir(_T("D:\\Test"));
szDir = szDir + _T("\0\0");
//Delete folder
SHFILEOPSTRUCT fileop;
fileop.hwnd = NULL; // no status display
fileop.wFunc = FO_DELETE; // delete operation
fileop.pFrom = szDir; // source file name as double null terminated string
fileop.pTo = NULL; // no destination needed
fileop.fFlags = FOF_NOCONFIRMATION|FOF_SILENT; // do not prompt the user
fileop.fAnyOperationsAborted = FALSE;
fileop.lpszProgressTitle = NULL;
fileop.hNameMappings = NULL;
int ret = SHFileOperation(&fileop);
有沒有人有這個想法?
是否有其他方式追加雙終止字符串?
哪一個可以工作? – zsalzbank 2011-01-06 02:32:08
這兩個*都不應該工作。如果其中之一發生了,那只是一個意外。 – 2011-01-06 02:33:54
@Greg:不應該第二個例子工作,因爲CString有以下'朋友CString運算符+(常量CString&字符串,LPCTSTR lpsz);'? (通過工作,我的意思是+操作,而不是將'CString'傳遞給'SHFileOperation') – 2011-01-06 02:42:16