Déplacer des fichiers dans C#
Je suis le mouvement de certaines images (nom de fichier (1).PNG, (2).PNG et ainsi de suite) à partir d'un répertoire à un autre. Je suis en utilisant le code suivant:
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
}
}
Cependant, j'obtiens l'erreur suivante:
Une exception de première chance de type System.IO.FileNotFoundException
s'est produite dans mscorlib.dll
System.IO.FileNotFoundException: Could not find file 'E:\vid\(1).PNG'.
Aussi, j'ai l'intention de renommer les fichiers, de sorte que la conversion d'un nom de fichier sera 00001.png, 00002.png,... 00101 et ainsi de suite.
Question idiote, mais vous êtes sûr que "E:\vid(1).PNG" existe?
Quelque chose est faux: votre code s'attend à ce que les fichiers à être nommé
Quelque chose de mal dans votre code ci-dessus? le fichier que vous essayez de déplacer nommé
Could not find file 'E:\vid(1).PNG'
mais votre code dit E:\\vid\\(1).png
- donc, il y a une barre oblique manque ici quelque part, non?Quelque chose est faux: votre code s'attend à ce que les fichiers à être nommé
(_num_).png
et de résider dans la E:\vid
répertoire. Les messages d'erreur indique que vous essayiez de "trouver" le fichier vid(_num_).png
dans `E:\` annuaire. Donc message d'erreur et le code ne correspondent pas. Veuillez assurez-vous que vous avez affiché le code et le message d'erreur correspondant.Quelque chose de mal dans votre code ci-dessus? le fichier que vous essayez de déplacer nommé
(1).png
à l'intérieur du dossier E:\vid
, pas E:\vid(1).png
. Lequel est le bon?
OriginalL'auteur MKS | 2012-11-29
Vous devez vous connecter pour publier un commentaire.
Je vous suggérons d'utiliser
'@'
afin d'échapper à des barres obliques dans un moyen plus lisible. Utilisez égalementPath.Combine(...)
afin de concaténer des chemins etPadLeft
afin d'avoir vos noms de vos spécificités.OriginalL'auteur Tobia Zambon
Pourquoi n'utilisez-vous pas quelque chose comme cela?
OriginalL'auteur Keysharpener
L'exception signifie que le fichier
E:\vid(1).PNG
n'existe pas. Voulez-vous direE:\vid1.PNG
?Utilisation
System.IO.Path
classe pour la construction de chemins d'accès, c'est mieux que la concaténation de chaînes. Vous n'avez pas à vous soucier de escapting barres obliques inverses.OriginalL'auteur Jakub Konecki
J'ai juste couru dans Visual Studio. Il a travaillé.
Peut-être quand vous étiez en déplaçant les fichiers dans son répertoire pour commencer le test, windows rasé de la parenthèse. (1).png est devenu 1.png... j'ai un fichier ne trouve pas d'erreur de ce phénomène... sinon, ton code est solide. Ma version est presque identique.
OriginalL'auteur BrianK
pourrait vous aider. Vous êtes de passage à
I as integer et la concaténation ne fonctionne pas à cause qu'
et au lieu d'utiliser
\\
, ajouter@
comme ceToString()
est appelé implicitement lorsque contcatenating avec une chaîne. Si tel est le problème, son code ne serait même pas compiler.Amen. vrai
OriginalL'auteur Gustav Klimt
Je crois que ça va aider.
OriginalL'auteur madhan seeman