//========================================================================= //获取软件名称 //========================================================================= CString CGroupManagementWay::GetSoftNmae(CString path) { // TODO: 在此添加命令处理程序代码 CFileFind file; BOOL bContinue = file.FindFile(path); BOOL ItemFileName = TRUE; while(bContinue && ItemFileName) { bContinue = file.FindNextFile(); if(!file.IsDirectory() && !file.IsDots()) { SHFILEINFO info; //关键代码 SHGetFileInfo(path , 0, &info, sizeof(&info), SHGFI_DISPLAYNAME | SHGFI_ICON); return info.szDisplayName; } } } //========================================================================= //重命名文件或是文件夹 //========================================================================= bool CGroupManagementWay::_ReNameFile(const TCHAR *_pFrom,const TCHAR *_pTo,WORD flags) { TCHAR pTo[MAX_PATH]={0}; _tcscpy(pTo,_pTo); TCHAR pFrom[MAX_PATH]={0}; _tcscpy(pFrom,_pFrom); SHFILEOPSTRUCT FileOp={0}; FileOp.fFlags = flags; FileOp.pFrom = pFrom; FileOp.pTo = pTo; FileOp.wFunc = FO_RENAME; return SHFileOperation(&FileOp) == 0; } //========================================================================= //删除文件或是文件夹 //========================================================================= bool CGroupManagementWay::_DeleteFile(const TCHAR* _pFrom,WORD flags) { //====================================================== //删除后不放入回收站 /*CString strPath = NULL; strPath = _pFrom; if (strPath.IsEmpty()) { RemoveDirectory(strPath); return false; } CFileFind ff; BOOL bFound = ff.FindFile(strPath + _T("//*"), 0); while(bFound) { bFound = ff.FindNextFile(); if ((ff.GetFileName() == _T(".")) || (ff.GetFileName() == _T(".."))) { continue; } SetFileAttributes(ff.GetFilePath(), FILE_ATTRIBUTE_NORMAL); if (ff.IsDirectory()) { _DeleteFile(ff.GetFilePath()); RemoveDirectory(ff.GetFilePath()); } else { DeleteFile(ff.GetFilePath()); } } ff.Close(); RemoveDirectory(strPath); return true;*/ //======================================================== //======================================================== //删除后放入回收站 TCHAR pFrom[MAX_PATH]={0}; _tcscpy(pFrom,_pFrom); SHFILEOPSTRUCT FileOp={0}; FileOp.pFrom = pFrom; FileOp.pTo = NULL; //一定要是NULL FileOp.fFlags = flags; FileOp.wFunc = FO_DELETE; //删除操作 return SHFileOperation(&FileOp) == 0; //========================================================== } //========================================================================= //复制文件或是文件夹 //========================================================================= bool CGroupManagementWay::_CopyFile(const TCHAR *_pFrom,const TCHAR *_pTo,WORD flags) { TCHAR pTo[MAX_PATH] = {0}; _tcscpy(pTo,_pTo); TCHAR pFrom[MAX_PATH] = {0}; _tcscpy(pFrom,_pFrom); SHFILEOPSTRUCT FileOp = {0}; FileOp.fFlags = flags; FileOp.pFrom = pFrom; FileOp.pTo = pTo; FileOp.wFunc = FO_COPY; return SHFileOperation(&FileOp) == 0; } //========================================================================= //移动文件或是文件夹 //========================================================================= bool CGroupManagementWay::_MoveFile(const TCHAR *_pFrom,const TCHAR *_pTo,WORD flags) { TCHAR pTo[MAX_PATH] = {0}; _tcscpy(pTo,_pTo); TCHAR pFrom[MAX_PATH] = {0}; _tcscpy(pFrom,_pFrom); SHFILEOPSTRUCT FileOp = {0}; FileOp.fFlags = flags; FileOp.pFrom = pFrom; FileOp.pTo = pTo; FileOp.wFunc = FO_MOVE; return SHFileOperation(&FileOp) == 0; } VC++获取文件名,移动、删除、重命名、复制文件。