崩溃了~关于遍历硬盘下所有文件的问题
大家应该对下面遍历文件的函数很熟悉
void CSearchThread::LoopFiles(CString sPath)
{
CFileFind oFileFind;
BOOL bFile;
CString sDir = sPath;
if ( sDir.Right(1) != '\\' )
sDir += '\\';
sDir += "*.*";
bFile=oFileFind.FindFile( sDir );
while( bFile )
{
bFile=oFileFind.FindNextFile();
if( oFileFind.IsDirectory()&&!oFileFind.IsDots())//文件夹
{
CString sFilePath,sFileName;
sFilePath=oFileFind.GetFilePath();
LoopFiles( sFilePath );
}
if ( !oFileFind.IsDirectory() && !oFileFind.IsDots())//文件
{
……………………
}
}
}
给了sPath就可以遍历
如果sPath是这样c:\abc.exe
通过这段
if ( sDir.Right(1) != '\\' )
sDir += '\\';
sDir += "*.*";
sPath 应该成了c:\abc.exe\*.*
可是我跟这段的时候
他执行了那3行
可sPath还是c:\abc.exe
这个函数还是可以遍历路径下所有文件的
可是如果sPath是c:
那么他还是不加后面的\*.*
这样就没法遍历c盘下的文件了
奇怪的很
希望有经验的朋友们能给我指点指点