Muszę sprawdzić, czy użytkownik może napisać do folderu, zanim faktycznie spróbuje to zrobić.
Zaimplementowałem następującą metodę (w C # 2.0), która próbuje pobrać uprawnienia bezpieczeństwa dla folderu przy użyciu metody Directory.GetAccessControl () .
private bool hasWriteAccessToFolder(string folderPath)
{
try
{
// Attempt to get a list of security permissions from the folder.
// This will raise an exception if the path is read only or do not have access to view the permissions.
System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath);
return true;
}
catch (UnauthorizedAccessException)
{
return false;
}
}
Kiedy szukałem w Google, jak testować dostęp do zapisu, nic takiego się nie pojawiło, a testowanie uprawnień w systemie Windows wydawało się bardzo skomplikowane. Obawiam się, że nadmiernie upraszczam rzeczy i że ta metoda nie jest niezawodna, chociaż wydaje się, że działa.
Czy moja metoda przetestowania, czy bieżący użytkownik ma dostęp do zapisu, działa poprawnie?