2009-10-13 6 views
0

Je voulais déplacer le fichier d'un dossier vers un autre dossier (cible). Si le même fichier existe déjà dans le dossier cible, je souhaite renommer .how pour l'implémenter en C#.Opérations sur les fichiers

Merci à l'avance Sekar

+1

Et que voulez-vous de renommer le fichier? Et si ce nom est pris? Et celui-là? –

Répondre

1

Au fond, c'est:

string source = ..., dest = ...; // the full paths 
if(File.Exists(dest)) 
{ 
    File.Move(dest, Path.GetTempFileName()); 
} 
File.Move(source, dest); 
0

Vous voulez utiliser la System.IO.Fil classe e et vérifier l'existence à l'avance du fichier.

if(File.Exists("myfile.txt")) 
    File.Move("myfile.txt", "myfile.bak"); 

File.Move("myotherfile.txt","myfile.txt"); 
2

System.IO.File. * a tout ce dont vous avez besoin.

System.IO.File.Exists = Pour vérifier si le fichier existe. System.IO.File.Move = Pour déplacer (ou renommer un fichier).

0

Si vous préférez un comportement fenêtres de style, donc il y a le code que je utilise pour une telle opération

public static void FileMove(string src,ref string dest,bool overwrite) 
{ 
    if (!File.Exists(src)) 
     throw new ArgumentException("src"); 
    File.SetAttributes(src,FileAttributes.Normal); 
    string destinationDir = Path.GetDirectoryName(dest); 
    if (!Directory.Exists(destinationDir)) 
    { 
     Directory.CreateDirectory(destinationDir); 
    } 
    try 
    { 
     File.Move(src,dest); 
    } 
    catch (IOException) 
    { 
     //error # 183 - file already exists 
     if (Marshal.GetLastWin32Error() != 183) 
      throw; 
     if (overwrite) 
     { 
      File.SetAttributes(dest,FileAttributes.Normal); 
      File.Delete(dest); 
      File.Move(src,dest); 
     } 
     else 
     { 
      string name = Path.GetFileNameWithoutExtension(dest); 
      string ext = Path.GetExtension(dest); 
      int i = 0; 
      do 
      { 
       dest = Path.Combine(destinationDir,name 
        + ((int)i++).ToString("_Copy(#);_Copy(#);_Copy") 
        + ext); 
      } 
      while (File.Exists(dest)); 
      File.Move(src,dest); 
     } 
    } 
} 
Questions connexes