如何在 C# 中可靠地检查对目录的写访问权限?
Jan 09, 2025 am 07:32 AM在 C# 中验证用户对目录的写入权限
在执行任何文件系统写入操作之前,必须确认用户对目标目录的写入权限。本文为这一关键检查提供了可靠的 C# 方法。
现有方法的局限性
传统方法,例如使用 Directory.GetAccessControl()
,可能不可靠。虽然它们可能指示写访问权限,但如果用户甚至没有查看目录安全设置的权限,它们通常会抛出UnauthorizedAccessException
。
强大的解决方案:IsDirectoryWritable()
我们改进的方法,IsDirectoryWritable()
,直接测试写入访问,而不依赖于可能有问题的权限检索:
public bool IsDirectoryWritable(string dirPath, bool throwIfFails = false) { try { using (FileStream fs = File.Create( Path.Combine( dirPath, Path.GetRandomFileName() ), 1, FileOptions.DeleteOnClose) ) { } return true; } catch { if (throwIfFails) throw; else return false; } }
登录后复制
该函数在指定目录中创建一个临时文件。成功创建确认写入访问权限。 该函数优雅地处理异常,默认返回 false
,但提供 throwIfFails
选项以进行更受控的错误处理。
主要优点:
与现有方法相比,这种方法具有多个优点:
- 直接写入访问测试:它直接评估写入能力,绕过间接权限检查。
- 异常处理:异常处理顺利,防止应用程序崩溃。
- 文件和目录兼容性:对文件和目录都能可靠地工作。
结论:
IsDirectoryWritable()
方法提供了一种简化且可靠的方法来验证对 C# 目录的写入访问权限,从而增强文件处理操作的稳健性。 它是依赖于可能容易出错的权限检索的方法的更好替代方案。
以上是如何在 C# 中可靠地检查对目录的写访问权限?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
击败分裂小说需要多长时间?
3 周前
By DDD
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前
By 尊渡假赌尊渡假赌尊渡假赌

热门文章
击败分裂小说需要多长时间?
3 周前
By DDD
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前
By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)