簡體   English   中英

檢查Windows文件權限

[英]Checking windows file permissions

我正在試圖弄清楚如何在不實際更改目錄的情況下檢查目錄是否可以更改。

在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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM