C# Ordner Volumenübergreifend kopieren

PeterParty

Lt. Junior Grade
Registriert
Aug. 2008
Beiträge
282
Hi,
Ich möchte Ordner A von Festplatte C: mit Ordner B Festplatte D: ersetzen in C#
Wie kann ich das machen?


Code:
 System.IO.Directory.Move(@"Scenery", path_weeze1);

Wenn ich diesen Code benutze kommt eine fehlermeldung das ich den ordner nicht volumenüberfreifend verschieben kann?

Kennt jemand eine lösung?

Mfg
Peter
 
Es gibt zum Glück endlich Schreibrechte unter Windows. Du kannst nciht wild Daten rumkopieren, erst recht nicht auf Laufwerk C. Dafür wurden die Verzeichnisse AppData und ProgrammData angelegt. Schau dir mal die Windows7-Zertifizierung an. Dann wirst du schnell erkennen, dass die Systemplatte kein guter Platz für Daten ist, was auch gut so ist. Führe deinen Code als Root aus und es könnte eventuell schon funktionieren. Alternativ mal in die MSDN zu dem "Move" schauen.

@edit: http://msdn.microsoft.com/de-de/library/system.io.directory.move.aspx Da stehts doch. Es fliegt immer eine IOException wenn das Volumen geändert wird. Geht also nicht mit Move.

@edit2: Wie es auschaut kann man nur die Verzeichnisse auslesen und am neuen Speicherort neu erstellen. Dann die beinhalteten Datein verschieben (das sollte volumenübergreifend gehen) und dann die alten Verzeichnisse löschen.
 
Zuletzt bearbeitet:
Kannst du mir bitte einen Codeausschnitt zeigen wie du das meinst?
 
PeterParty schrieb:
Wenn ich diesen Code benutze kommt eine fehlermeldung das ich den ordner nicht volumenüberfreifend verschieben kann?

Du kannst mit .Move einen Ordner nur innerhalb der gleichen Partition/Datenträger verschieben.
Volumenübergreifend musst du den Ordner kopieren und dann eben die Quelle wieder löschen:

http://msdn.microsoft.com/en-us/library/bb762914.aspx
 
Zurück
Oben