Cho*_*lly 5 c c++ windows file-io
我有一个Win32程序,如果删除了目录中的所有文件,将删除该目录.目录删除成功并删除目录,但在程序退出之前,该目录仍将显示在Windows资源管理器窗口中.尝试在资源管理器中打开文件夹将产生一个弹出错误消息:"位置不可用""无法访问.访问被拒绝."[确定].
几乎立即在资源管理器窗口中为文件夹更新中的文件调用_unlink().有没有办法"刷新"文件系统而不是退出程序.该程序通常会运行数天,因此在程序退出之前出现错误的幻像文件夹是不可接受的.有没有办法用_unlink()执行此操作,或者我将不得不切换到Windows API版本的调用?
您是否拥有该目录的任何描述符?使用 Process Explorer 检查包含其名称的文件句柄。
由于 Windows 资源管理器在应用程序运行时显示该目录,但在退出后停止显示,因此问题可能是您的应用程序持有该目录的句柄或文件描述符,这以某种方式阻止该目录被完全删除,或者它会欺骗 Windows 资源管理器,让其认为它仍在文件系统中。