Maison > développement back-end > C++ > Comment puis-je tester de manière fiable l'accès en écriture à un répertoire en C# ?

Comment puis-je tester de manière fiable l'accès en écriture à un répertoire en C# ?

DDD
Libérer: 2025-01-09 07:37:45
original
703 Les gens l'ont consulté

How Can I Reliably Test Write Access to a Directory in C#?

Une méthode plus robuste pour vérifier l'accès en écriture à un répertoire en C#

La vérification directe des autorisations d'écriture dans le répertoire peut s'avérer peu fiable. La simple requête des autorisations ne garantit pas un accès réel en écriture. Une approche plus fiable consiste à tenter une opération d'écriture.

Voici une méthode améliorée :

<code class="language-csharp">public bool IsDirectoryWritable(string dirPath, bool throwIfFails = false)
{
    try
    {
        // Create a temporary file to test write access.  It's automatically deleted.
        using (FileStream fs = File.Create(Path.Combine(dirPath, Path.GetRandomFileName()), 1, FileOptions.DeleteOnClose)) { }
        return true;
    }
    catch (Exception ex)
    {
        if (throwIfFails)
            throw; // Re-throw the exception for higher-level handling
        else
            return false;
    }
}</code>
Copier après la connexion

Cette fonction tente de créer un fichier temporaire dans le répertoire cible. Le FileOptions.DeleteOnClose garantit que le fichier est automatiquement supprimé, sans laisser de trace. Le succès indique un accès en écriture ; l'échec renvoie false (ou lève l'exception si throwIfFails est vrai). Cela teste directement la capacité d’écriture, évitant ainsi les pièges liés au seul contrôle des autorisations. C'est concis et facile à comprendre.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal