我的目标是删除指定文件夹中的所有文件,但不删除文件夹本身。我考虑调用 FindFirstFile,然后重复调用 FindNextFile,同时删除找到的每个文件,使用以下伪代码:
if(FindFirstFile(FindFileData))
{
do
{
DeleteFile(FindFileData.FileName);
}
while(FindNextFile(FindFileData));
FindClose(FindFileData); //EDIT for people who didn't see my pseudo-code remark
}
但是现在我在想,如果我在枚举该文件夹时需要删除文件怎么办?换句话说,我是否需要首先缓存所有找到的文件名,然后再删除它们,还是像上面所示的那样做就可以了呢?
FindFirstFile
的错误处理是错误的。在出现错误的情况下,它会返回INVALID_HANDLE_VALUE
,即 -1,因此你的if
分支将被执行。 - Frerich Raabe