这段时间在做个安装程序~,发现个很奇怪的问题
DeleteFile(strFileName);
删除C盘中的文件报错,返回没有权限,可是我的程序已经是管理员权限运行了,这就神奇了。
然后让程序生成个bat,用bat来删除文件结果发现这是可行的.....
后来发现用SHFileOperation是可以删除的.....只好写了个函数专门删除文件
<pre name="code" class="cpp">
<span style="font-family: Arial, Helvetica, sans-serif;">
BOOL CUnInstallDlg::DeleteFileOrDir(CDuiString strFileName)
{
TCHAR szFileName[MAX_PATH+2] = {0};
_stprintf_s(szFileName,strFileName.GetLength()+1,strFileName.GetData());
SHFILEOPSTRUCT FileOp = {0};FileOp.hwnd = m_hWnd;FileOp.wFunc = FO_DELETE;FileOp.pFrom = szFileName;FileOp.pTo = NULL;FileOp.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI|FOF_ALLOWUNDO ;FileOp.fAnyOperationsAborted = FALSE;FileOp.hNameMappings = NULL;FileOp.lpszProgressTitle = NULL;if(SHFileOperation(&FileOp)){return FALSE;}return TRUE;}
</span>