내 .NET 2.0 응용 프로그램에서는 디렉터리에 파일을 만들고 쓸 수있는 충분한 권한이 있는지 확인해야합니다. 이 목적을 위해 파일을 만들고 단일 바이트를 쓰고 나중에 사용 권한이 있는지 테스트하기 위해 자체를 삭제하려고 시도하는 다음 함수가 있습니다.
나는 최선의 방법을 확인하는 것은 실제로 시도하고 예외를 잡는 것이었다. 나는 예외적 인 캐치 (catch)에 대해 특히 행복하지는 않다. 그렇기 때문에 이보다 더 좋은 방법이 있을까?
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;
}
}
string fullPath = directory + TEMP_FILE;
fullPath를 얻기 위해 문자열을 연결하는 대신 Path.Combine 메서드를 사용하십시오.Path.Combine(directory, TEMP_FILE)
- nomail