我用RemoveDirectoryW删除某个文件夹下的所有文件,当我遍历删除完某层时,会遇到如果删除全部某层的全部文件,当再删除某层的目录,可是当返回到它的上层时,再次删除时,会提示还有文件,我发现那文件确实没有删除,但是确返回成功,而且只有程序运行完退出时才会自动删除某目录,然后还要遍历第二遍来删除余下的目录,但情况还是一而再再而三的出现,为何会出现这样的情况。难道就不能再次全部删除光么,非得删除好几遍,删除文件用DeleteFileW没事,但就是RemoveDirectoryW,弄了好久了,不行啊,求助啊

解决方案 »

  1.   

    Res
    The RemoveDirectory function s a directory for deletion on close. Therefore, the directory is not removed until the last handle to the directory is closed.
    To recursively delete the files in a directory, use the SHFileOperation function.
      

  2.   

    SHFileOperation() 强行删除...
      

  3.   

    有注意这句语句啦,我有用CloseHandle先关闭当前的目录,因为我是递归来删除的,所以下层的时候已经删除了,删除目录是在上一层删除的
      

  4.   

    FindClose,你明白的,方便后来人吧