在实际尝试之前,我需要测试用户是否可以写入文件夹。
我已经实现了以下方法(在 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# 中检查文件夹访问的一种完全有效的方法。它可能失败的唯一地方是如果您需要在一个紧密的循环中调用它,其中异常的开销 可能 是一个问题。