首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

写了一个函数编译报错 大家帮小弟我看下呢。

2012-04-05 
写了一个函数编译报错 大家帮我看下呢。。BOOL ClearDir(CString strDir){WIN32_FIND_DATA FindFileDataHAN

写了一个函数编译报错 大家帮我看下呢。。
BOOL ClearDir(CString strDir){
WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile(strDir, &FindFileData);
if(hFind == INVALID_HANDLE_VALUE){
FindClose(hFind);
return TRUE;
}
do{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
CString strPath(FindFileData.cFileName);
if((0 == strPath.Compare(_T("."))) || (0 == strPath.Compare(_T("..")))){
continue;
}
ClearDir(strPath);

else 
{
DeleteFile(strPath);
}
}while(FindNextFile(hFind, &FindFileData));
FindClose(hFind);
}
DeleteFile(strPath);说strPath 无法识别。


[解决办法]
CString strPath(FindFileData.cFileName);
变量作用域的问题
strPath变量只在下面的语句段内有效,其余地方无效。
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
CString strPath(FindFileData.cFileName);
if((0 == strPath.Compare(_T("."))) || (0 == strPath.Compare(_T("..")))){
continue;
}
解决办法,是否可以把这个变量拿到最开始声明。
比如:CString strPath;
。。。。。
然后改为下面的:
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
strPath=FindFileData.cFileName;
if((0 == strPath.Compare(_T("."))) || (0 == strPath.Compare(_T("..")))){
continue;
}

热点排行