2017-08-31 1 views
1

Ich habe was könnte ein ungewöhnliches Problem sein. Mein Problem ist, dass ich eine Sammlung von Dateipfaden habe, die auch die Dateinamen enthalten. Wenn der Code die Auflistung umschlingt, nimmt er die Zeichenfolge und erstellt ein FileInfo-Objekt. Mit diesem Objekt verwendet es dann die MoveTo-Methode, um die Datei an einen anderen Ort zu verschieben.FileInfo kann die angegebene Dateiausnahme nicht finden

Das alles funktioniert gut, bis es eine Datei mit einer Länge von Null erreicht und sagt, dass es die Datei nicht finden kann. Wenn ich diese Datei nehme und ein FileInfo-Objekt in einer anderen Anwendung erstelle, funktioniert sie unabhängig von ihrer Größe. Weiß jemand, was das verursacht und wie man es löst? Relevante Codeausschnitt unten

IList<string> files = new List<string >(); 
files.add(file1); 
files.add(file2); 

foreach (string filepath in files) 
{ 
    FileInfo file = new FileInfo (filepath); 
    string newlocation = Path.Combine(dest, file.name); 

    file.MoveTo (newlocation); //exception thrown here on zero length 
} 
+1

Fileinfo pflegt eine Ausnahme für einen nicht existierenden Pfad werfen. Sie müssen "Exists" zuerst verwenden, bevor Sie versuchen, eine Aktion auszuführen, die von der vorhandenen Datei abhängt. – Nkosi

+0

Der Punkt fehlt. Das existiert, aber es sagt, dass es nicht ist. Wenn Sie meine Notiz gelesen haben, habe ich gesagt, dass ich einen Test geschrieben habe, um zu überprüfen, ob die Datei verschoben wird, und es funktioniert. Existieren ist hier nicht der Punkt. Die Frage ist, warum macht es das – Andy5

+0

Nur zur Fehlersuche passiert das gleiche, wenn Sie 'File.Move' – Nkosi

Antwort

Verwandte Themen