Heim >Backend-Entwicklung >C++ >Wie kann ich die Dateisperrungen in C# proaktiv überprüfen, ohne Ausnahmen zu verwenden?

Wie kann ich die Dateisperrungen in C# proaktiv überprüfen, ohne Ausnahmen zu verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-02 22:16:11706Durchsuche

How Can I Proactively Verify File Locks in C# Without Using Exceptions?

Vermeiden Sie Ausnahmen beim Überprüfen von Dateisperrungen in C#

Verwaltung von Dateizugriffskonflikten in C# kann schwierig sein. Dieser Artikel enthält eine proaktive Methode, um die Verfügbarkeit von Dateien zu überprüfen, ohne sich auf die Ausnahmebehandlung zu verlassen und eine robustere Lösung anzubieten. Das Problem tritt beim Versuch, auf eine Datei zuzugreifen, in die derzeit geschrieben wird

Ein proaktiver Ansatz mit FileAccess.Read

Anstatt sich auf die Ausnahmebehandlung zu verlassen, können wir

verwenden, um die Verfügbarkeit von Dateien proaktiv zu überprüfen. Dieser überarbeitete Code -Snippet zeigt eine effizientere und zuverlässigere Methode: FileAccess.Read

<code class="language-csharp">protected virtual bool IsFileLocked(FileInfo file)
{
    using (FileStream stream = file.Open(FileMode.Open, FileAccess.Read, FileShare.None))
    {
        stream.Close();
        return false; // File is accessible
    }
    catch (IOException)
    {
        // File is locked or unavailable
        return true; 
    }
}</code>

Erläuterung

Der Code versucht, die Datei im schreibgeschützten Modus (

) mit exklusivem Zugriff (FileAccess.Read) zu öffnen. Wenn ein anderer Vorgang eine Sperre in der Datei enthält (z. B. das Schreiben), schlägt die FileShare.None -Methode fehl und wirft ein Open. Der IOException Block verarbeitet dies und gibt try-catch zurück, um anzuzeigen, dass die Datei gesperrt ist. Erfolgreiche Dateiöffnung bedeutet, dass die Datei verfügbar ist und true zurückgegeben wird. Dieser Ansatz vermeidet den Leistungsaufwand und potenzielle Probleme, die mit der Ausnahme von Ausnahmebedingern verbunden sind. false

Das obige ist der detaillierte Inhalt vonWie kann ich die Dateisperrungen in C# proaktiv überprüfen, ohne Ausnahmen zu verwenden?. 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