我正在使用 CreateDirectory 给定路径,其中包含“d:\temp\s1\”该函数在 1000 次中失败一次,因为我击中相同 no 的概率较小,我认为这不是问题,但如果返回“ERROR_ALREADY_EXISTS”它仍然创建该目录
例如我有这个目录结构
d:\温度\s1\1002 d:\温度\s1\1009 ..................... .....................
等等说 30 个这样的文件夹,当 getLastError() 返回“ERROR_ALREADY_EXISTS”时,我继续循环并检查下一个随机数。我发现那些新目录正在无限创建,而这些目录以前不存在……这很奇怪,任何帮助都是最好的,因为它是非常随机的
代码是这样的...
int randNo = 0;
while(1)
{
randNo = rand();
cnt++;
sprintf(tempDirPath,"d:\\temp\\S1\\%d",randNo);
mbstowcs(wBuf,tempDirPath,_MAX_PATH);
bVal = CreateDirectory((LPCTSTR)wBuf,NULL);
retVal = GetLastError();
if( retVal == ERROR_ALREADY_EXISTS)
{
continue;
}
else if (retVal == ERROR_PATH_NOT_FOUND)
{
bVal = CreateFolder(tempDirPath); // i'm creating a folder for further use
}
break;
}