具有FLAG_DELETE_ON_CLOSE的Win32 API CreateDirectory可能?

问题描述

| 我当然不是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\",FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_DELETE_ON_CLOSE,NULL);
    CloseHandle(hDir);
}
这确实可以在我测试过的机器上运行(如果目录为空),但是我不确定它是否被记录为有效的操作。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...