我正在尝试创建一个强大的递归文件夹删除器功能。
使用普通目录可以很好地工作。
当我创建“硬核”目录时出现问题,例如:
C:\test\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x\x\ ... \x \x\x
其长度约为 25000(小于 MSDN 限制:32,767)。基本上我递归地创建了这个目录,直到 CreatDirectory 函数失败。
现在,最奇怪的是,我的函数能够删除 2 个目录,然后 FindFirstFile 以 0x5 失败:
\\?\C:\test\x\ ... \x\x\x\*.* < no error
\\?\C:\test\x\ ... \x\x\*.* < no error
\\?\C:\test\x\ ... \x\*.* < access denied
(我可以重新运行它,该应用程序正在慢慢咀嚼文件夹,2 x 2,可能直到路径长度变得非常小)
我正在运行 FindFirstFile 来检查文件夹是否为空。
- 是否有任何记录较少的限制?
- FindFirstFile 根本不起作用?(越野车?)
- 我是否缺少某种 NTFS 权限?
- 别的...
编辑:重要提示:如果我一步一步慢慢运行程序......那么什么都不会失败。