Question Renommez un fichier en C #


Comment renommer un fichier en utilisant C #?


488
2017-07-10 11:05


origine


Réponses:


Jeter un coup d'œil à System.IO.File.Move, "déplace" le fichier vers un nouveau nom.

System.IO.File.Move("oldfilename", "newfilename");

747
2017-07-10 11:08



System.IO.File.Move(oldNameFullPath, newNameFullPath);

106
2017-07-10 11:08



Vous pouvez utiliser File.Move pour le faire.


36
2017-07-10 11:11



Dans la méthode File.Move, cela ne remplacera pas le fichier s'il existe déjà. Et ça va lancer une exception.

Nous devons donc vérifier si le fichier existe ou non.

/* Delete the file if exists, else no exception thrown. */

File.Delete(newFileName); // Delete the existing file if exists
File.Move(oldFileName,newFileName); // Rename the oldFileName into newFileName

Ou entourez-le avec une prise d'essai pour éviter une exception.


36
2018-01-05 05:25



Ajoutez simplement:

namespace System.IO
{
    public static class ExtendedMethod
    {
        public static void Rename(this FileInfo fileInfo, string newName)
        {
            fileInfo.MoveTo(fileInfo.Directory.FullName + "\\" + newName);
        }
    }
}

Et alors...

FileInfo file = new FileInfo("c:\test.txt");
file.Rename("test2.txt");

23
2018-01-16 04:03



  1. Première solution

    Éviter System.IO.File.Move solutions affichées ici (réponse marquée incluse). Il échoue sur les réseaux. Cependant, le modèle de copie / suppression fonctionne localement et sur les réseaux. Suivez l'une des solutions de déplacement, mais remplacez-la par Copie. Utilisez ensuite File.Delete pour supprimer le fichier d'origine.

    Vous pouvez créer une méthode Rename pour la simplifier.

  2. Facilité d'utilisation

    Utilisez l'assemblage VB en C #. Ajouter une référence à Microsoft.VisualBasic

    Ensuite, pour renommer le fichier:

    Microsoft.VisualBasic.FileIO.FileSystem.RenameFile(myfile, newName);

    Les deux sont des cordes. Notez que myfile a le chemin complet. newName ne le fait pas. Par exemple:

    a = "C:\whatever\a.txt";
    b = "b.txt";
    Microsoft.VisualBasic.FileIO.FileSystem.RenameFile(a, b);
    

    le C:\whatever\ le dossier contiendra maintenant b.txt.


18
2018-04-22 22:05



Vous pouvez le copier en tant que nouveau fichier, puis supprimer l'ancien en utilisant le System.IO.File classe:

if (File.Exists(oldName))
{
    File.Copy(oldName, newName, true);
    File.Delete(oldName);
}

13
2017-09-11 05:08