gpt4 book ai didi

c++ - 在代码中 - 删除包含文件的文件夹

转载 作者:行者123 更新时间:2023-11-28 03:40:49 24 4
gpt4 key购买 nike

我正在尝试编写代码来删除包含文件的文件夹。我尝试了几种方法,每次都遇到同样的问题。我把文件夹里的文件删了,文件夹貌似没问题。但似乎对该文件夹的某种引用仍然存在。

我单步执行我的代码,然后进入删除函数,它们似乎顺利通过。然后我转到 Windows 资源管理器并尝试访问我刚刚删除的文件夹。它仍然存在,即使代码说它删除了它,但当我点击它时它显示“拒绝访问”。我尝试过的一种方法确实从 Windows 资源管理器中删除了该文件夹,但是当我尝试创建一个具有相同名称和位置的文件夹时,我收到错误消息,GetLastError 显示 E_ACCESSDENIED。

那么我必须做些什么才能正确删除文件夹吗?

我使用的一种方法是使用 SHFileOperation。另一个是使用 FindFirstData 并删除所有文件,然后使用 RemoveDirectory 删除空文件夹。两者都让我遇到了这个访问被拒绝的问题。

编辑:这是我的 SHFileOperation。 https://stackoverflow.com/questions/9291995/cant-get-shfileoperation-to-delete-a-directory-with-more-than-one-file

最佳答案

您可以使用 Boost.FileSystem .

在你的情况下是

boost::filesystem::remove_all(yourPath)

这将删除路径中的所有文件。然后使用:

RemoveDirectory( LPCTSTR lpPathName );    // Windows only

关于c++ - 在代码中 - 删除包含文件的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9310827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com