我使用自定义.HMD格式对VC ++ MFC应用程序中的某些数据进行二进制编码。想象一下文件夹中有多个HMD文件,我想读取它们的所有文件名。
我偶然发现了CFindFile
级的MFC。我在项目路径中添加了一堆HMD文件并尝试了以下代码 -
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("*.HMD"));
while (bWorking)
{
bWorking = finder.FindNextFile();
TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
}
此代码有效! TRACE打印了项目路径中的所有HMD文件。
然而,我尝试从随机目录中做同样的事情。我只是在项目路径中创建了一个data
目录,并将所有HMD文件移到那里,然后再次尝试代码。
CFileFind finder;
BOOL bWorking = finder.FindFile(_T("data\*.HMD")); // Only change is I added data to path
while (bWorking)
{
bWorking = finder.FindNextFile();
TRACE(_T("%s\n"), (LPCTSTR)finder.GetFileName());
}
但是,这个无法读取文件名。 finder.FindNextFile()
已返回false
有人可以告诉我如何修复我对CFindFile的使用,以便我可以从任何随机目录中读取文件吗?
P.S。我正在使用MultiByte字符集。
答案 0 :(得分:5)
您需要转义反斜杠字符。而不是
"data\*.HMD"
使用
"data\\*.HMD"