gpt4 book ai didi

c++ - 检查windows文件权限

转载 作者:可可西里 更新时间:2023-11-01 11:29:19 24 4
gpt4 key购买 nike

我正在尝试弄清楚如何检查是否可以在不实际更改目录的情况下更改目录。

在 posix 系统上我会这样做:

if (access("/some/path", X_OK) == 0) {
// okay!
}

要是 Windows 这么简单就好了....

我已经查看了文档或 GetFileSecurity,但我似乎无法理解 Windows ACL 以及我实际必须检查的内容以确保可以更改目录到。

最佳答案

确定操作是否成功的唯一方法是实际尝试操作。

但是,如果您没有相关文件夹的FILE_TRAVERSESYNCHRONIZE 权限,SetCurrentDirectory 将失败。因此,您可以使用 CreateFile 进行测试,而无需实际更改目录。

bool TestForSetCurrentDirPermission(LPCWSTR pszDir)
{
HANDLE hDir = CreateFile(pszDir, FILE_TRAVERSE | SYNCHRONIZE,
FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);

if (hDir != INVALID_HANDLE_VALUE) CloseHandle(hDir);
return hDir != INVALID_HANDLE_VALUE;
}

关于c++ - 检查windows文件权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24846747/

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