文件的删除和文件名的得到 http://202.118.224.100/codeguru/fcompare.shtml.htm 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 bool DeleteTree(LPCTSTR lpszPath){ WIN32_FIND_DATA data; ZeroMemory(&data, sizeof(data)); HANDLE hFind = INVALID_HANDLE_VALUE; TCHAR szPath[MAX_PATH]; _tcscpy(szPath, lpszPath); _tcscat(szPath, "\\*.*"); try { hFind = ::FindFirstFile(szPath, &data); while(hFind != INVALID_HANDLE_VALUE) { if(_tcscmp(data.cFileName, ".") != 0 && _tcscmp(data.cFileName, "..") != 0) { // Ignore the . and .. file if(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { TCHAR szDirectory[MAX_PATH + 1]; _tcscpy(szDirectory, lpszPath); _tcscat(szDirectory, "\\"); _tcscat(szDirectory, data.cFileName); DeleteTree(szDirectory); } else { TCHAR szFileName[MAX_PATH]; _tcscpy(szFileName, lpszPath); _tcscat(szFileName, "\\"); _tcscat(szFileName, data.cFileName); CFile::Remove(szFileName); } } if(!::FindNextFile(hFind, &data)) break; } ::FindClose(hFind); } catch(CFileException* e) { if(hFind != INVALID_HANDLE_VALUE) ::FindClose(hFind); ::SetLastError(e->m_cause); e->Delete(); return false; } catch(...) { if(hFind != INVALID_HANDLE_VALUE) ::FindClose(hFind); return false; } return ::RemoveDirectory(lpszPath) != FALSE;}上面的函数实现了删除一个目录(包括其中的文件和子目录),lpszPath传给要删除的目录名就可以了。主要是用了,FindFirstFile和FindNextFile这两个API HOOK安装全局WH_GETMESSAGE用来截取键盘输入的问题 用通俗易懂的方式讲一下dll远程注入 CReBar::AddBar()断言错误 问一下 directshow和directdraw的区别? 请问菜单里的打开怎么用按钮实现 谁知道卸载程序是如何删除自己和自己所在的目录? 图片闪烁的问题. 动态增加数据源问题 数据绑定问题,紧急! 我想在按钮里看一个raido button是否被点中,怎样得知这一消息呀? 各位大侠,请教CHM文件的制作 一个给对象赋值的问题,请求帮助!!谢谢!!!!!!
{
WIN32_FIND_DATA data;
ZeroMemory(&data, sizeof(data));
HANDLE hFind = INVALID_HANDLE_VALUE; TCHAR szPath[MAX_PATH];
_tcscpy(szPath, lpszPath);
_tcscat(szPath, "\\*.*"); try
{
hFind = ::FindFirstFile(szPath, &data); while(hFind != INVALID_HANDLE_VALUE)
{
if(_tcscmp(data.cFileName, ".") != 0 && _tcscmp(data.cFileName, "..") != 0)
{ // Ignore the . and .. file
if(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TCHAR szDirectory[MAX_PATH + 1];
_tcscpy(szDirectory, lpszPath);
_tcscat(szDirectory, "\\");
_tcscat(szDirectory, data.cFileName);
DeleteTree(szDirectory);
}
else
{
TCHAR szFileName[MAX_PATH];
_tcscpy(szFileName, lpszPath);
_tcscat(szFileName, "\\");
_tcscat(szFileName, data.cFileName);
CFile::Remove(szFileName);
}
} if(!::FindNextFile(hFind, &data))
break;
} ::FindClose(hFind);
}
catch(CFileException* e)
{
if(hFind != INVALID_HANDLE_VALUE)
::FindClose(hFind);
::SetLastError(e->m_cause);
e->Delete();
return false;
}
catch(...)
{
if(hFind != INVALID_HANDLE_VALUE)
::FindClose(hFind);
return false;
} return ::RemoveDirectory(lpszPath) != FALSE;
}上面的函数实现了删除一个目录(包括其中的文件和子目录),lpszPath传给要删除的目录名就可以了。
主要是用了,FindFirstFile和FindNextFile这两个API