try
{
System.IO.Directory.Move(@"c:\d1\d2\d3\", @"c:\d1\new\");
}
catch(...)
{
}
Die Move-Methode kann eine der folgenden Ausnahmen auslösen, die abhängig von Ihrer Verwendung möglicherweise ausgelöst werden. Sie müssen also den Ausnahmebehandler so programmieren, dass er zu Ihrer Anwendung passt.
- System.IO.IOExeption
- System.UnauthorizedAccessException
- System.ArgumentException
- System.ArgumentNullException
- System.IO.PathToLongException
- System.IO.DirectoryNotFoundException
Als ein allgemeines Beispiel (Sie wahrscheinlich nicht wollen/müssen Meldungsfelder auf Fehler anzuzeigen):
try
{
System.IO.Directory.Move(@"c:\d1\d2\d3\", @"c:\d1\new\");
}
catch (System.UnauthorizedAccessException)
{
MessageBox.Show("You do not have access to move this files/directories");
}
catch(System.IO.DirectoryNotFoundException)
{
MessageBox.Show("The directory to move files/directories from was not found")
}
catch
{
MessageBox.Show("Something blew up!");
}
Schließlich ist es erwähnenswert, dass der Anruf den aktuellen Thread blockiert zu bewegen, bis der Umzug abgeschlossen ist. Wenn Sie dies über eine Benutzeroberfläche tun, wird die Benutzeroberfläche blockiert, bis die Kopie fertiggestellt ist. Dies kann einige Zeit dauern, abhängig davon, wie viele Dateien/Verzeichnisse verschoben werden. Daher könnte es ratsam sein, dies in einem separaten Thread auszuführen und/oder eine Zyklusfortschrittsleiste anzuzeigen.
Möchten Sie wissen, wie Sie die Dateien physisch verschieben oder wie Sie alle Verweise auf den alten Pfad ändern können? –