Dans mon .NET 2.0 de l'application, j'ai besoin de vérifier si les autorisations suffisantes existent pour créer et écrire dans des fichiers d'un répertoire. À cette fin, j'ai la fonction suivante qui tente de créer un fichier et écrire qu'un seul octet, la suppression de lui-même par la suite pour vérifier que les autorisations n'existe pas.
J'ai pensé que le meilleur moyen de vérifier est de réellement essayer de le faire, attraper toutes les exceptions qui se produisent, mais je ne suis pas particulièrement heureux de l'Exception générale de capture, ainsi il y a de mieux, ou peut-être plus accepté de le faire?
private const string TEMP_FILE = "\\tempFile.tmp";
/// <summary>
/// Checks the ability to create and write to a file in the supplied directory.
/// </summary>
/// <param name="directory">String representing the directory path to check.</param>
/// <returns>True if successful; otherwise false.</returns>
private static bool CheckDirectoryAccess(string directory)
{
bool success = false;
string fullPath = directory + TEMP_FILE;
if (Directory.Exists(directory))
{
try
{
using (FileStream fs = new FileStream(fullPath, FileMode.CreateNew,
FileAccess.Write))
{
fs.WriteByte(0xff);
}
if (File.Exists(fullPath))
{
File.Delete(fullPath);
success = true;
}
}
catch (Exception)
{
success = false;
}
}