Schreibberechtigungen für Dateien und Verzeichnisse festlegen
Viele Programmiervorgänge erfordern die Fähigkeit, in Dateien oder Verzeichnisse auf dem System des Benutzers zu schreiben. In .NET bietet die File-Klasse eine unkomplizierte Methode zum Schreiben von Inhalten in Dateien. Es ist jedoch wichtig, die Schreibberechtigungen zu prüfen, bevor Sie mit dem Vorgang fortfahren.
Wenn versucht wird, ohne die erforderlichen Berechtigungen in eine Datei zu schreiben Berechtigungen, wird das Programm auf eine UnauthorizedAccessException stoßen. Um dieses Problem zu beheben, können Sie die PermissionSet- und Permission-Klassen aus dem System.Security-Namespace nutzen.
Der folgende Code zeigt, wie PermissionSet verwendet wird, um nach Schreibberechtigungen für eine bestimmte Datei zu suchen:
public void ExportToFile(string filename) { var permissionSet = new PermissionSet(PermissionState.None); var writePermission = new FileIOPermission(FileIOPermissionAccess.Write, filename); permissionSet.AddPermission(writePermission); if (permissionSet.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet)) { using (FileStream fstream = new FileStream(filename, FileMode.Create)) using (TextWriter writer = new StreamWriter(fstream)) { writer.WriteLine("sometext"); } } else { // Perform recovery actions, as write permission is not granted } }
Wenn das PermissionSet eine Teilmenge der Berechtigungen der aktuellen Anwendungsdomäne ist, ist der Schreibvorgang erfolgreich. Andernfalls muss das Programm Wiederherstellungsaktionen ausführen, da ihm die erforderlichen Berechtigungen fehlen.
Leider gibt es keine programmatische Möglichkeit, einer Datei oder einem Verzeichnis Schreibrechte zu erteilen. Stattdessen müssen Sie den Benutzer auffordern, den Zugriff manuell über die Benutzeroberfläche oder ein Drittanbieter-Tool zu gewähren.
Das obige ist der detaillierte Inhalt vonWie kann ich programmgesteuert nach Schreibberechtigungen für Dateien und Verzeichnisse in .NET suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!