c# - 如何在用户打开文件时锁定对文件的访问?

标签 c# .net file-io idisposable file-access

我正在编写一个 C#.NET 程序,它使用 XmlSerializer 将当前用户正在处理的项目与 XML 文件进行序列化和反序列化。这工作正常,但我试图找出一种方法来防止两个用户从网络驱动器打开同一个文件并让一个用户覆盖前一个用户的保存。我本质上想要 MS Word 的行为,如果程序在打开文件时无法获得对文件的写访问权限,它会以只读模式打开文件。

那么如何锁定对文件的访问呢?我是否只是让文件流对象保持打开状态并保留对它的引用?我是否继续对任何中间保存使用相同的文件流对象,而不是为每次保存打开和关闭它们?还是有其他方法可以锁定对文件的访问?

另外,即使我的应用程序崩溃了,我如何确保文件被释放?这是实现 IDisposable 的好案例吗?

最佳答案

您可以使用 FileStream.LockFileStream.Unlock方法

关于c# - 如何在用户打开文件时锁定对文件的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2300668/

相关文章:

c# - 正则表达式查找 3 个括号之间包含的字符串

.net - HTTP 错误 400。请求 header 的大小太长

我们可以将带有空格的路径字符串作为参数传递给 fopen() 吗?

C++如何将整数存储到二进制文件中?

c# - 在 C# 中同步闪烁标签

c# - 如何使用 LINQ .ToUpper() 数组的每个元素?

c# - 如何将字符串转换为偶校验的 7 位 ASCII?

c# - 奇怪的 C# 命名空间问题

c# - .NET 检查两个 IEnumerable<T> 是否具有相同的元素

python - 当单词以 "|"(PSV) 分隔时如何读取文件?