Si certaines conditions sont remplies, je souhaite copier un fichier d'un répertoire à un autre SANS supprimer le fichier d'origine. Je souhaite également définir le nom du nouveau fichier avec une valeur particulière.
J'utilise C # et utilisais la classe FileInfo. Bien qu'il ait la méthode CopyTo. Cela ne me donne pas la possibilité de définir le nom du fichier. Et la méthode MoveTo, tout en me permettant de renommer le fichier, supprime le fichier à son emplacement d'origine.
Quelle est la meilleure manière de s'occuper de ça?
System.IO.File.Copy(oldPathAndName, newPathAndName);
Vous pouvez aussi essayer la méthode Copy :
File.Copy(@"c:\work\foo.txt", @"c:\data\bar.txt")
Utilisez plutôt la méthode File.Copy
par exemple.
File.Copy(@"C:\oldFile.txt", @"C:\newFile.txt");
Vous pouvez l'appeler comme vous le souhaitez dans le nouveau fichier et le renommer en conséquence.
Si vous voulez utiliser uniquement la classe FileInfo, essayez ceci
string oldPath = @"C:\MyFolder\Myfile.xyz";
string newpath = @"C:\NewFolder\";
string newFileName = "new file name";
FileInfo f1 = new FileInfo(oldPath);
if(f1.Exists)
{
if(!Directory.Exists(newpath))
{
Directory.CreateDirectory(newpath);
}
f1.CopyTo(string.Format("{0}{1}{2}", newpath, newFileName, f1.Extension));
}
Une méthode est:
File.Copy(oldFilePathWithFileName, newFilePathWithFileName);
Ou vous pouvez utiliser la méthode FileInfo.CopyTo () aussi, comme ceci:
FileInfo file = new FileInfo(oldFilePathWithFileName);
file.CopyTo(newFilePathWithFileName);
Exemple:
File.Copy(@"c:\a.txt", @"c:\b.txt");
ou
FileInfo file = new FileInfo(@"c:\a.txt");
file.CopyTo(@"c:\b.txt");
File.Copy(@"C:\oldFile.txt", @"C:\newFile.txt", true);
S'il vous plaît ne pas oublier de remplacer le fichier précédent! Assurez-vous d’ajouter le troisième paramètre. En ajoutant le troisième paramètre, vous autorisez le remplacement du fichier. Sinon, vous pouvez utiliser un catch try pour l'exception.
Cordialement, G
StreamReader reader = new StreamReader(Oldfilepath);
string fileContent = reader.ReadToEnd();
StreamWriter writer = new StreamWriter(NewFilePath);
writer.Write(fileContent);
Vous pouvez utiliser la méthode Copy dans la classe System.IO.File.
La méthode la plus simple que vous pouvez utiliser est la suivante:
System.IO.File.Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName);
Cela prendra soin de tout ce que vous avez demandé.
Vous pouvez utiliser la méthode File.Copy (oldFilePath, newFilePath) ou lire le fichier à l’aide de StreamReader dans une chaîne, puis utiliser StreamWriter pour écrire le fichier à l’emplacement de destination.
Votre code pourrait ressembler à ceci:
StreamReader reader = new StreamReader("C:\foo.txt");
string fileContent = reader.ReadToEnd();
StreamWriter writer = new StreamWriter("D:\bar.txt");
writer.Write(fileContent);
Vous pouvez ajouter un code de gestion des exceptions ...