Sprache: C#
Dieses kleine Beispiel soll zeigen, wie man herausfinden kann, ob in einem bestimmten Verzeichnis geschrieben werden kann oder nicht.
Auf diese Weise kann man somit eine Fehlerbehandlung durchführen, wenn die Anwendung sich beispielsweise auf einem schreibgeschützten Medium befindet.
[b][Notiz: CH20100827S0005CS10ME][/b]
/*
[+] #region [Restliche Using-Direktiven]
*/
using System.IO;
using System.Security.AccessControl;
/*
[+] #region [Restlicher WindowsForms-Code]
*/
try
{
DirectorySecurity ds = Directory.GetAccessControl("C:temp");
System.Windows.Forms.MessageBox.Show("Sie haben Zugriff");
}
catch (UnauthorizedAccessException)
{
System.Windows.Forms.MessageBox.Show("Keine Schreibrechte");
}
/*
[+] #region [Restliche Using-Direktiven]
*/
using System.IO;
using System.Security.AccessControl;
/*
[+] #region [Restlicher WindowsForms-Code]
*/
try
{
DirectorySecurity ds = Directory.GetAccessControl("C:temp");
System.Windows.Forms.MessageBox.Show("Sie haben Zugriff");
}
catch (UnauthorizedAccessException)
{
System.Windows.Forms.MessageBox.Show("Keine Schreibrechte");
}
Alte URL:
/snippet/pruefen-ob-in-einem-verzeichnis-schreibrechte-verfuegbar-sind/1438
Das lässt sich auch ohne Exception-Handling lösen, welches der bevorzugte Weg sein sollte, da das Erstellen einer Exception keine resourcenschonende Angelegenheit ist und somit möglichst vermieden werden sollte.
Ich verweise dazu auf einen meiner Snippets: http://dotnet-snippets.de/dns/effektive-benutzerrechte-ermitteln-SID1377.aspx