winapi - 带有 FLAG_DELETE_ON_CLOSE 的 Win32 API CreateDirectory。可能的?

标签 winapi create-directory

我当然不是 Win32 API 编程专家,但我刚刚学到的是使用 CreateFile函数 我可以使用 FILE_FLAG_DELETE_ON_CLOSE 值将其标记为在其句柄被释放后由操作系统删除。我似乎找不到使用 CreateDirectory 来做同样事情的方法,或者我错过了什么?

或者,我可以订阅这个特定文件夹中的更改(例如创建的新文件),然后以某种方式用这个标志标记文件夹中的所有文件吗?

最佳答案

您可以使用 FILE_FLAG_BACKUP_SEMANTICS 标志打开目录句柄:

#include <windows.h>
#include <stdio.h>
void main()
{
    CreateDirectory(".\\testdir",NULL);
    system("pause");
    HANDLE hDir = CreateFile(".\\testdir",0,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,0,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_DELETE_ON_CLOSE,NULL);
    CloseHandle(hDir);
}

这在我测试的机器上确实有效(如果目录为空),但我不确定它是否被记录为有效的事情。

关于winapi - 带有 FLAG_DELETE_ON_CLOSE 的 Win32 API CreateDirectory。可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5646684/

相关文章:

c++ - (C++)使用g++返回 “undefined reference to ` WinMain @ 1 6'”的Win32 API示例代码

winapi - 获取 waveIn 设备的全名

c++ - 从 GetAdaptersAddresses() 获取子网掩码

python-3.x - 动态创建文件夹并将 csv 文件写入该文件夹

c - 如何在C中创建文件夹(需要在Linux和Windows上运行)

java - 如何创建多个目录?

C# Directory.CreateDirectory 停止工作

php - 如何使用 PHP 在 S3 存储桶中创建文件夹

java - 如何向正在运行的 Java 程序发送命令?

delphi - 如何在不更改有效文本宽度的情况下绘制缩放文本?