用于访问其他进程锁定的文件的 VB.NET 和 C# 解决方案
访问多个进程同时使用的文件通常会导致可怕的“使用中”异常。 本指南提供了在 VB.NET 和 C# 中读取和修改文件的可靠方法,即使这些文件被其他应用程序锁定也是如此。
在 VB.NET 和 C# 中使用 FileShare
一个简单的解决方案涉及打开文件流时的 FileShare
参数。 设置 FileShare.ReadWrite
表示应用程序愿意共享文件访问权限。
VB.NET 示例:
<code class="language-vb.net">Dim strContents As String Dim objReader As StreamReader objReader = New StreamReader(FullPath, FileShare.ReadWrite) strContents = objReader.ReadToEnd() objReader.Close()</code>
C# 示例:
<code class="language-csharp">using (var objReader = new StreamReader(FullPath, FileShare.ReadWrite)) { var strContents = objReader.ReadToEnd(); }</code>
替代方法:使用FileStream
FileStream
类提供对文件访问的更细粒度的控制。 这个例子演示了它的用法:
<code class="language-csharp">using (var logFileStream = new FileStream("c:\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var logFileReader = new StreamReader(logFileStream)) { while (!logFileReader.EndOfStream) { string line = logFileReader.ReadLine(); // Process each line } }</code>
此代码使用 FileStream
打开文件,指定 FileMode.Open
、FileAccess.Read
和 FileShare.ReadWrite
。 StreamReader
然后有效地读取文件的内容。
来源归属
FileStream
方法改编自:https://www.php.cn/link/c7876d6b0f9d5461fd3e87c0d1e51e12
以上是如何在 VB.NET 和 C# 中访问被其他进程锁定的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!