1

Ich versuche, eine einfache File.Move Operation auszuführen, aber ich erhalteZugriff auf Pfad verweigert - File.Move versagt aber File.Delete arbeitet

System.UnauthorizedAccessException Ausnahme - Zugriff auf den Pfad verweigert.

Soweit ich weiß, verwendet nichts die Datei, die ich verschieben möchte (der Ordner ist ebenfalls geschlossen). Ich kann die Datei manuell über den Datei-Explorer einfach verschieben. Ich habe versucht File.Delete und es funktioniert einwandfrei.

Ich bin unsicher, was passiert - warum würde File.Move scheitern aber File.Delete funktionieren, wenn Visual Studio sagt, dass der Zugriff auf den Pfad verweigert wird?

Hier ist mein Code:

string file = @"C:\Data\VCR\150326\150326.MPG"; 
string destination = @"G:\ArchiveData\Video"; 

System.IO.File.Move(file, destination); 
+1

Haben Sie versucht, den Zugriff (oder erstellen/löschen) jede Datei (en) auf dem Zielordner? Versuchen Sie etwas Code, um etwas in diesem Ordner zu tun, das könnte der Konflikt sein – Luiso

+2

Setzen Sie einen abschließenden Backslash auf 'Ziel', so dass es klar ist, ist es ein Verzeichnis und kein Dateiname. Windows denkt, dass Sie versuchen, die Datei '150326.MPG' in' G: \ ArchiveData \ Video' (eine Datei mit dem Namen Video) zu kopieren, anstatt sie in den Ordner 'Video \' zu kopieren, und wenn der Ordner bereits existiert, dann klar Die Kopie dieses Dateinamens schlägt fehl. –

Antwort

0

Also mein Problem war, dass mein Zielpfad der Dateinamen nicht enthalten. Hinzufügen des Dateinamen auf meine Variable destination macht es Arbeit:

string file = @"C:\Data\VCR\150326\150326.MPG"; 
string destination = @"G:\ArchiveData\Video\150326.MPG"; 

System.IO.File.Move(file, destination); 
Verwandte Themen