我需要在实际尝试之前测试用户是否可以写入文件夹。

我已经实现了以下方法(在 C# 2.0 中),该方法尝试使用 Directory.GetAccessControl() 方法检索文件夹的安全权限。

private bool hasWriteAccessToFolder(string folderPath)
{
    try
    {
        // Attempt to get a list of security permissions from the folder.
        // This will raise an exception if the path is read only or do not have access to view the permissions.
        System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath);
        return true;
    }
    catch (UnauthorizedAccessException)
    {
        return false;
    }
}

当我在谷歌上搜索如何测试写访问权限时,没有出现类似的情况,而且在 Windows 中实际测试权限似乎非常复杂。我担心我过度简化了事情并且这种方法并不可靠,尽管它似乎确实有效。

我的测试当前用户是否具有写访问权限的方法可以正常工作吗?

最佳答案

这是在 C# 中检查文件夹访问的完全有效的方法。它可能会失败的唯一地方是,如果您需要在一个紧密循环中调用它,其中异常的开销可能是一个问题。

之前已经问过其他的 similar questions

关于C# 测试用户是否对文件夹具有写权限,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1410127/

10-14 17:19
查看更多