用於存取其他進程鎖定的檔案的 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中文網其他相關文章!