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