首页 >后端开发 >C++ >如何在 C# 中可靠地测试对目录的写访问?

如何在 C# 中可靠地测试对目录的写访问?

DDD
DDD原创
2025-01-09 07:37:45704浏览

How Can I Reliably Test Write Access to a Directory in C#?

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn