Verschieben von Dateien in C#
Ich in Bewegung bin, einige Bilder (mit dem Namen wie (1).PNG, (2).PNG und so weiter) von einem Verzeichnis in ein anderes. Ich bin mit dem folgenden code:
for (int i = 1; i < n; i++)
{
try
{
from = "E:\\vid\\(" + i + ").PNG";
to = "E:\\ConvertedFiles\\" + i + ".png";
File.Move(from, to); //Try to move
Console.WriteLine("Moved"); //Success
}
catch (IOException ex)
{
Console.WriteLine(ex); //Write error
}
}
Aber, ich erhalte die folgende Fehlermeldung:
Erste chance Ausnahme des Typs System.IO.FileNotFoundException
traten in mscorlib.dll
System.IO.FileNotFoundException: Could not find file 'E:\vid\(1).PNG'.
Auch, ich bin der Planung, um die Dateien umzubenennen, so dass Sie die konvertierte Dateiname 00001.png -, 00002.png... 00101 und so weiter.
- Dumme Frage, aber bist du sicher, dass "E:\vid(1).PNG" vorhanden ist?
Could not find file 'E:\vid(1).PNG'
aber dein code sagtE:\\vid\\(1).png
- es gibt also ein slash fehlt hier irgendwo, nicht?- Etwas ist falsch: der code erwartet, dass die Dateien benannt werden
(_num_).png
und befinden sich in derE:\vid
- Verzeichnis. Die Fehlermeldungen Staaten, dass Sie versuchen zu "finden" die Dateivid(_num_).png
in `E:\` - Verzeichnis. Also Fehlermeldung und code passen nicht zusammen. Bitte stellen Sie sicher, dass Sie gebucht ist der aktuelle code und die Fehlermeldung, die übereinstimmen. - Etwas falsch in deinem code oben? die Datei, die Sie verschieben möchten, ist benannt
(1).png
im OrdnerE:\vid
, nichtE:\vid(1).png
. Welcher ist der richtige?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich schlage vor, Sie verwenden
'@'
um escape-slashes in einem besser lesbaren Weise. Verwenden Sie auchPath.Combine(...)
um die Verkettung von Pfaden undPadLeft
um Ihre Dateinamen so Ihre Besonderheiten.Warum nimmst du nicht sowas?
Ausnahme bedeutet, dass die Datei
E:\vid(1).PNG
existiert nicht. Meinst duE:\vid1.PNG
?Verwenden
System.IO.Path
Klasse für die Konstruktion von Pfaden, es ist besser als die Verkettung von strings. Sie müssen nicht sorgen zu machen über die escapting backslashes.Ich lief einfach in Visual Studio. Es arbeitete.
Vielleicht, wenn Sie das verschieben von Dateien in vid Verzeichnis zu beginnen, der test, windows abrasiert die Klammer. (1).png wurde 1.png... ich habe eine Datei, die nicht gefunden Fehler von diesem Phänomen... ansonsten ist dein code ist solide. Meine version ist fast identisch.
könnte Ihnen helfen. Sie übergeben
Ich als integer und Verkettung funktioniert nicht, aufgrund, dass
und anstatt
\\
fügen Sie@
wie dieseToString()
heißt implizit, wenn contcatenating mit einem string. Wenn dies das problem war, seinen code gar nicht kompilieren.Ich glaube, das wird helfen.