FileStream包含锁定文件

Sap*_*huA 15 .net c# filestream filelock c#-4.0

我想知道是否可以将readonly FileStream转换为锁定文件?我现在尝试读取锁定文件时出现异常.

using (FileStream stream = new FileStream("path", FileMode.Open))
Run Code Online (Sandbox Code Playgroud)

谢谢!

jga*_*fin 28

你应该尝试另一个构造函数.它们记录在MSDN上.

这个看起来像一个赌注:

FileStream Constructor (String, FileMode, FileAccess, FileShare)
Run Code Online (Sandbox Code Playgroud)

MSDN链接

的FileAccess

一个常量,用于确定FileStream对象如何访问该文件.这将获取FileStream对象的CanRead和CanWrite属性.如果path指定磁盘文件,则CanSeek为true.

文件共享

一个常量,用于确定进程如何共享文件.


Han*_*ant 7

using (FileStream stream = new FileStream("path", FileMode.Open))
Run Code Online (Sandbox Code Playgroud)

这将使用FileShare参数FileShare.Read的默认值.这会拒绝任何写入文件的过程.如果另一个进程正在写入文件,那么这是行不通的,你不能否认已经获得的权利.

您必须指定FileShare.ReadWrite.如果其他进程使用FileShare.None,那可能仍然无效,没有解决方法.请注意,获取正在写入的文件的读取权限很麻烦,您没有可靠的文件结束指示.文件中的最后一条记录或行可能只是部分写入.