gpt4 book ai didi

c++ - 使用 FILE_FLAG_BACKUP_SEMANTICS 后无法更改目录时间戳

转载 作者:可可西里 更新时间:2023-11-01 09:25:01 30 4
gpt4 key购买 nike

我也在尝试使用 FILE_FLAG_BACKUP_SEMANTICS 后更改目录的时间戳。我的代码片段如下

    int SetDirectoryTime(char *Path)
{
FILETIME ftCreate, ftAccess, ftWrite;
Handle = CreateFile(Path, GENERIC_WRITE, FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);

if (Handle == INVALID_HANDLE_VALUE)
{
//Unable to open directory
return FALSE;
}

if (SetFileTime(Handle, &ftCreate, &ftAccess, &ftWrite) == 0)
{
//Unable to set directory time
CloseHandle(Handle);
return FALSE;
}
}

我能够获得有效句柄,但 SetFileTime 返回访问被拒绝。我为 SE_BACKUP_NAMESE_RESTORE_NAME 尝试了 EnablePrivilege,但我仍然被拒绝访问。

最佳答案

作为 SetFileTime 上的 MSDN 页面明确记录要设置时间的文件的句柄必须具有FILE_WRITE_ATTRIBUTES权限。

很明显,您的句柄没有。

所以... 好了。

关于c++ - 使用 FILE_FLAG_BACKUP_SEMANTICS 后无法更改目录时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18201368/

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