c++ - 删除带有子文件夹的文件时 FOF_NORECURSION
问题描述
有人可以向我解释一下FOF_NORECURSION
标志的 MSDN 描述是什么意思:
FOF_NORECURSION
仅在本地目录中执行操作。不要递归操作到子目录,这是默认行为。
SHFileOperation
与删除文件夹的功能一起使用时?
SHFILEOPSTRUCT sfos = {0};
sfos.hwnd = hWnd;
sfos.wFunc = FO_DELETE;
sfos.pFrom = folderPath; //Must be doubly-null-terminated
sfos.pTo = NULL;
sfos.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR |
FOF_NOERRORUI | FOF_SILENT | FOF_NORECURSION;
SHFileOperation(&sfos);
我的理解是,如果我在包含子文件夹的文件夹上调用它,则该文件夹不会被删除。但这不是我所看到的。
解决方案
您可能希望使用该FOF_FILESONLY
标志不递归到子文件夹。*.*
并用您的路径明确地质量删除操作。
int main()
{
CoInitialize(nullptr);
SHFILEOPSTRUCT sfos = { 0 };
sfos.hwnd = nullptr;
sfos.wFunc = FO_DELETE;
sfos.pFrom = L"C:\\vacation\\pictures\\*.*\0";
sfos.pTo = NULL;
sfos.fFlags = FOF_FILESONLY;
auto result = SHFileOperation(&sfos);
return 0;
}
推荐阅读
- sql - 返回空值 - 合并和 ISNULL
- error-handling - VBScript“打开所有工作簿”错误处理
- angular - 在 Angular 2 多选下拉菜单中实现验证
- r - 是否有 Julia 函数来转换坐标参考系(例如 R 中的 st_transform)?
- spring-cloud - spring-cloud-stream Horsham 是否支持 Spring Boot 2.3?
- python - 当我按以下方式运行我的 python 代码时,为什么我的管道 GridSearchCV 没有结果?
- react-native - Firebase / 谷歌分析
- amazon-web-services - AWS CDK 是否支持项目中的多种语言?
- macos - Zsh 终端未注册对 zshrc 所做的更改
- node.js - 保护路由以响应服务器端渲染