我该如何使用StreamReader
打开一个带有FILE_SHARE_READ
,FILE_SHARE_WRITE
,FILE_SHARE_DELETE
的文件?
同样的问题,稍微拓展一下
如何打开一个StreamReader
以便读取一个编码的文本文件,并使用共享选项使另一个进程可以读取该文件?
如何打开一个StreamReader
以便读取一个编码的文本文件,并使用共享选项使另一个进程在我读取文件时可以修改该文件?
如何打开一个StreamReader
以便读取一个编码的文本文件,并使用共享选项使另一个进程可以在我读取文件时删除该文件?
同样的问题,稍微扩展一下
.NET Framework类库中有一个名为StreamReader
的类。它是唯一设计用于读取"文本"的类,这就是为什么它继承自抽象基类TextReader
的原因。 TextReader/StreamReader
允许您指定要打开的文件使用的编码,并且可以为您解码该文件,返回文本Strings
。
一旦我使用StreamReader
打开了一个文件:
var sr = new StreamReader(path);
文件被锁定,其他进程无法修改或删除该文件。我需要的是与
FileStream
类的FileShare
枚举相当的东西。
- None: 拒绝共享当前文件。任何尝试打开该文件的请求(无论是由此进程还是另一个进程)都将失败,直到该文件关闭。
- Read: 允许后续以读取方式打开文件。如果未指定此标志,则任何尝试以读取方式打开文件的请求(无论是由此进程还是另一个进程)都将失败,直到该文件关闭。但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。
- Write: 允许后续以写入方式打开文件。如果未指定此标志,则任何尝试以写入方式打开文件的请求(无论是由此进程还是另一个进程)都将失败,直到该文件关闭。但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。
- ReadWrite: 允许后续以读取或写入方式打开文件。如果未指定此标志,则任何尝试以读取或写入方式打开文件的请求(无论是由此进程还是另一个进程)都将失败,直到该文件关闭。但是,即使指定了此标志,仍可能需要其他权限才能访问该文件。
- Delete: 允许后续删除文件。
FileStream
- 必须使用 StreamReader
。如何使用
FileShare.ReadWrite | FileShare.Delete
打开一个 StreamReader
?