注册 登录
编程论坛 VC.NET论坛

用CFileFind判断一个目录下是否有文件的问题

liangfeiyp 发布于 2006-08-04 21:41, 2685 次点击

我的程序要检索一个目录,如果有文件就继续往下读取和分析文件,没有就返回,定义了一个检测函数:
bool IsExitFile( CString& strDirectory) //判断目标目录下是否有文件
{

CFileFind Finder;
CString strTempDirectory = strDirectory +"\\" +"*.*";
BOOL IsFinded = Finder.FindFile(strTempDirectory);
if( IsFinded )
return true;
else
return false;
}

然后在主线程函数中调用
void CJKVView::AnaylseFile()
{
if( IsExitFile( m_strFormat))     //m_strFormat参数是传入用户设置的文件存放路径
{
fileinfo afile;
resortfiles(afile); //读取原始文件信息
ana(afile); ////生成,打开和读取生成的文件
CaclTime2(afile); //整理已经分析的文件
}
else
return;
}

编译的时候出错,说有无法解析的命令:
JKV error LNK2019: 无法解析的外部符号 "public: bool __thiscall CJKVView::IsExitFile(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > &)" (?IsExitFile@CJKVView@@QAE_NAAV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@@Z) ,该符号在函数 "public: void __thiscall CJKVView::AnaylseFile(void)" (?AnaylseFile@CJKVView@@QAEXXZ) 中被引用
JKV fatal error LNK1120: 1 个无法解析的外部命令

我在主函数中把IsExitFile()函数的调用去掉,不使用 if( IsExitFile( m_strFormat))这个判断过程,则编译顺利通过,
不知道是哪里出错了,请高人指点,不胜感激!

2 回复
#2
十一月天2006-08-05 07:01
SaveFileDialog里的CheckFileExists属性,当设置成false的时候,就可以当你选择一个不存在的文件时自动创建一个,默认是true,是不可以自动创建,我原来是用这个加上try{}catch{}判断过。
#3
liangfeiyp2006-08-07 22:04
我的问题已经解决了,是因为我的声明出现了问题,谢谢你!
1