C#에서 디렉터리에 대한 쓰기 액세스를 확인하는 더욱 강력한 방법
디렉터리 쓰기 권한을 직접 확인하는 것은 신뢰할 수 없습니다. 단순히 권한을 쿼리한다고 해서 실제 쓰기 액세스가 보장되는 것은 아닙니다. 보다 신뢰할 수 있는 접근 방식은 쓰기 작업을 시도하는 것입니다.
개선된 방법은 다음과 같습니다.
<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>
이 함수는 대상 디렉터리 내에 임시 파일을 생성하려고 시도합니다. FileOptions.DeleteOnClose
은 파일이 자동으로 제거되어 흔적을 남기지 않도록 합니다. 성공은 쓰기 액세스를 나타냅니다. 실패하면 false
이 반환됩니다(또는 throwIfFails
가 true인 경우 예외가 발생합니다). 이는 쓰기 기능을 직접 테스트하여 권한 확인에만 의존하는 함정을 피합니다. 간결하고 이해하기 쉽습니다.
위 내용은 C#에서 디렉터리에 대한 쓰기 액세스를 안정적으로 테스트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!