检查windows文件权限
Checking windows file permissions
我想知道如何检查一个目录是否可以在不实际更改到该目录的情况下更改。
在posix系统上,我会这样做:
if (access("/some/path", X_OK) == 0) {
// okay!
}
要是Windows这么简单就好了....
我已经看了文档或GetFileSecurity
,但我似乎无法理解Windows acl和我实际上必须检查的内容,以确保目录可以更改为。
确保操作是否成功的唯一方法是实际尝试操作。
但是,如果您没有相关文件夹的FILE_TRAVERSE
或SYNCHRONIZE
权限,则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;
}
相关文章:
- 如何使用Windows API C++更改已创建的文件夹/目录安全权限
- 从根权限进程创建可访问的文件
- 威纳派读取自定义文件或文件夹的所有访问权限
- 如何在C#或C++中获取文件或文件夹的有效权限?有什么 API 吗?
- 在没有root权限的情况下安装NTL,并在生成文件中修改其构建路径
- TOCTTOU - 在处理文件之前使用访问权限
- 提升进程间共享内存删除、权限和输出文件
- C++ - 将文本追加到仅具有 NTFS"追加数据"权限的文件
- 如何使用 c++ 创建对"everyone"具有共享访问权限的文件夹
- 检查文件是否具有Windows c ++的可执行权限
- CLION无法打开输出文件,拒绝了权限
- 为可执行文件授予比运行用户更多的权限
- 无法打开输出文件___.exe:权限被拒绝
- 写入文件权限被拒绝
- Dokan:我应该自己处理文件共享和访问权限吗?
- 在 C++ 中为文件夹中的所有文件设置权限
- 确定程序本身是否具有对文件的特定访问权限的最简洁的方法是什么
- 在没有读取权限 c++ 的情况下返回大小文件
- C++将文件权限添加到 zip 文件
- 如何在Qt/C++中设置Windows文件权限