在 C# 中验证对目录的写访问权限的更稳健方法
直接检查目录写入权限可能不可靠。 简单地查询权限并不能保证实际的写访问权限。 更可靠的方法是尝试写入操作。
这里有一个改进的方法:
<code class="language-csharp">public bool IsDirectoryWritable(string dirPath, bool throwIfFails = false) { try { // Create a temporary file to test write access. It's automatically deleted. using (FileStream fs = File.Create(Path.Combine(dirPath, Path.GetRandomFileName()), 1, FileOptions.DeleteOnClose)) { } return true; } catch (Exception ex) { if (throwIfFails) throw; // Re-throw the exception for higher-level handling else return false; } }</code>
此函数尝试在目标目录中创建临时文件。 FileOptions.DeleteOnClose
确保文件被自动删除,不留下任何痕迹。 成功表示有写权限;失败返回 false
(如果 throwIfFails
为 true,则抛出异常)。 这直接测试写入能力,避免了仅依赖权限检查的陷阱。 简洁易懂。
以上是如何在 C# 中可靠地测试对目录的写访问?的详细内容。更多信息请关注PHP中文网其他相关文章!