Kopieren, verschieben, umbenennen und löschen von Dateien gehören zu häufigen Aufgaben eines Softwareentwicklers. In diesem Beitrag sollen ein paar Dinge aufgezeigt werden die einem beim kopieren von Datein vielleicht nicht bewusst sind. Wie kopiert man jetzt am besten eine Datei? Eine Variante ist die statische Methode der Klasse File:
File.Copy(“C:\\input\\test.bmp“, “C:\\output\\test.bmp“, true);
Damit man sich Überprüfungen wie ob die Datei bereits existiert (File.Exist()) sparen kann, wird die Überladung der Copy-Methode verwendet, welche bestehende Dateien überschreibt. Solange man die Software nur mit administrativen Rechten betreibt, hat man alles richtig gemacht. Muss die Software auch mit Benutzer Rechten arbeiten, kann man hier eine UnauthorizedAccessException bekommen. Dies würde zum Beispiel eintreten wenn eine schreibgeschützte Datei, bereits im Zielverzeichnis existiert und erneut in dieses Verzeichnis kopiert werden soll. Die .Net Implementierung der Copy-Methode fordert Berechtigungen on demand an, das bedeutet erst, wenn besondere Zugriffsrechte benötigt werden, werden diese angefordert. Als Benutzer hat man aber nicht die benötigten Rechte um schreibgeschützte Dateien zu überschreiben. Um diesen speziellen Fall zu lösen, könnte man nach dem kopieren die Attribute der Datei verändern (dafür genügen die Benutzer Rechte):