模拟';访问被拒绝';对于C#/Windows中的文件

本文关键字:Windows 文件 拒绝 访问 模拟 对于 | 更新日期: 2023-09-27 17:58:15

我正试图为一个小型C#例程编写集成测试,该例程读取不同的文件。

而且,我意外地认为,有一个测试会很好,它指定了当对该文件的访问被拒绝时的行为

有人知道在测试沙箱中模拟它的一种简单方法吗?


  • 我怀疑这可以使用DirectorySecurity,来模拟,但是,我真的不确定是否有可能在所有情况下都正确地进行:

    例如,假设我可以剥离正在运行测试的当前用户的访问规则(这也需要UAC/Elevation)。

    我想在这种情况下,我将失去恢复这些权限的能力,并在测试完成后正确处理我的沙盒(而不必深入到模拟和访问令牌操作等方面)。

  • 我可能可以使用Moles或任何其他基于mock的方法来实现这一点,但我更感兴趣的是通用解决方案(例如,为本机应用程序重用此测试)。

我错过了什么?有任何简单的方法可以做到这一点吗?

模拟';访问被拒绝';对于C#/Windows中的文件

您并没有明确表示要通过安全设置来实现这一点,那么,为什么不在其他地方获得对该文件的独占访问权限呢?

using(File.Open(path, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
    //hold here to keep file locked
}