首页 >后端开发 >C++ >如何在 VB.NET 和 C# 中访问被其他进程锁定的文件?

如何在 VB.NET 和 C# 中访问被其他进程锁定的文件?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-16 15:42:09433浏览

How Can I Access Files Locked by Other Processes in VB.NET and C#?

用于访问其他进程锁定的文件的 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.OpenFileAccess.ReadFileShare.ReadWriteStreamReader 然后有效地读取文件的内容。

来源归属

FileStream方法改编自:https://www.php.cn/link/c7876d6b0f9d5461fd3e87c0d1e51e12

以上是如何在 VB.NET 和 C# 中访问被其他进程锁定的文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn