Maison > développement back-end > C++ > Comment puis-je vérifier de manière proactive les verrous de fichiers dans C # sans utiliser d'exceptions?

Comment puis-je vérifier de manière proactive les verrous de fichiers dans C # sans utiliser d'exceptions?

Mary-Kate Olsen
Libérer: 2025-02-02 22:16:11
original
811 Les gens l'ont consulté

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

Éviter les exceptions lors de la vérification des verrouillage du fichier dans C #

Gérer les conflits d'accès aux fichiers en C # peut être délicat. Cet article présente une méthode proactive pour vérifier la disponibilité des fichiers sans s'appuyer sur la gestion des exceptions, offrant une solution plus robuste. Le problème se pose lorsque vous essayez d'accéder à un fichier qui est actuellement écrit, conduisant à des erreurs de "fichier en utilisation".

Une approche proactive en utilisant FileAccess.Read

Au lieu de compter sur la gestion des exceptions, nous pouvons utiliser FileAccess.Read pour vérifier de manière proactive la disponibilité des fichiers. Cet extrait de code révisé montre une méthode plus efficace et fiable:

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; 
    }
}
Copier après la connexion

Explication

Le code tente d'ouvrir le fichier en mode en lecture seule (FileAccess.Read) avec un accès exclusif (FileShare.None). Si un autre processus maintient un verrou sur le fichier (par exemple, l'écriture), la méthode Open échouera, lançant un IOException. Le bloc try-catch gère ceci, le retour true pour indiquer que le fichier est verrouillé. L'ouverture du fichier réussie signifie que le fichier est disponible et false est renvoyé. Cette approche évite les frais généraux de performance et les problèmes potentiels associés à la compréhension uniquement de la manipulation des exceptions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal