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?
É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:
<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>
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!