Heim >Backend-Entwicklung >C++ >Wie kann ich auf Dateien zugreifen, die von anderen Prozessen in VB.NET und C# gesperrt wurden?

Wie kann ich auf Dateien zugreifen, die von anderen Prozessen in VB.NET und C# gesperrt wurden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-16 15:42:09436Durchsuche

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

VB.NET- und C#-Lösungen für den Zugriff auf Dateien, die von anderen Prozessen gesperrt wurden

Der gleichzeitige Zugriff auf Dateien, die von mehreren Prozessen verwendet werden, führt oft zu der gefürchteten „In-Use“-Ausnahme. Dieses Handbuch bietet zuverlässige Methoden zum Lesen und Ändern von Dateien in VB.NET und C#, selbst wenn sie von anderen Anwendungen gesperrt sind.

Verwendung von FileShare in VB.NET und C#

Eine einfache Lösung beinhaltet den Parameter FileShare beim Öffnen von Dateistreams. Die Einstellung FileShare.ReadWrite signalisiert die Bereitschaft der Anwendung, den Dateizugriff freizugeben.

VB.NET-Beispiel:

<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#-Beispiel:

<code class="language-csharp">using (var objReader = new StreamReader(FullPath, FileShare.ReadWrite))
{
    var strContents = objReader.ReadToEnd();
}</code>

Alternativer Ansatz: Einsatz von FileStream

Die FileStream-Klasse bietet eine differenziertere Kontrolle über den Dateizugriff. Dieses Beispiel demonstriert seine Verwendung:

<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>

Dieser Code öffnet die Datei mit FileStream und gibt FileMode.Open, FileAccess.Read und FileShare.ReadWrite an. Ein StreamReader liest dann effizient den Inhalt der Datei.

Quellenangabe

Der FileStream Ansatz wurde übernommen von: https://www.php.cn/link/c7876d6b0f9d5461fd3e87c0d1e51e12

Das obige ist der detaillierte Inhalt vonWie kann ich auf Dateien zugreifen, die von anderen Prozessen in VB.NET und C# gesperrt wurden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn