2009-06-30 8 views
0

Je dispose d'un fichier de modèle dans un dossier « c: \ template_folder ».Comment ajouter le fichier dans le dossier que si le fichier ne marche pas exister en utilisant C#

Lors de l'exécution, je vais créer un nouveau dossier « c: \ new_folder » et que vous souhaitez copier le fichier de modèle au new_folder que si le fichier ne marche pas existe. Pour la première fois, je vais copier le fichier de modèle dans le nouveau dossier et le renommer avec le nom d'utilisateur ... de sorte qu'après la première fois la boucle se termine, j'aurai 8 fichiers Excel avec le nom d'utilisateur comme nom de le chaque fichier. Pour la deuxième boucle, si je dois copier le fichier modèle dans new_folder et le renommer en nom d'utilisateur, si le fichier avec le nom d'utilisateur existe déjà, il ne doit pas copier le fichier dans le dossier.

Je suis Addin l'extrait du code de référence.

foreach (FileInfo fi in templateFile) 
{ 
    string oldfilename = null; 
    string newfilename = null; 
    if (dir.Exists) 
    { 

      fi.CopyTo(Path.Combine(dir.ToString(), fi.Name)); 
      FileInfo fileName = new FileInfo(fi.Name); 
      oldfilename = Path.Combine(dir.ToString(), fileName.ToString()); 
      newfilename = Path.Combine(dir.ToString(), tempUserName + " " + "E" + tempUserID + " VIPv7.0.xls"); 


      //if(!dir.ToString().Contains(newfilename)) 
      foreach(FileInfo fileList in fileNames) 
      { 
      if (fileList.Exists == false) 
       File.Move(oldfilename, newfilename); 
      } 
    } 
} 

aidez-moi s'il vous plaît à travailler ceci.

grâce Ramm

+0

Juste une petite remarque (Désolé de ne pas répondre à la question) vous écrivez: if (fileList.Exists == false). fileList.Exists est un booléen, le résultat de votre instruction if est également un booléen. Vous devriez simplement écrire if (! FileList.Exists). – TimothyP

Répondre

3

Pour déplacer un fichier sous condition que si elle n'existe pas déjà vous le feriez comme ceci:

if (!File.Exists(newfilename)) 
{ 
    File.Move(oldfilename, newfilename); 
} 

Votre extrait de code me rend confus, alors j'espère avoir répondu correctement à votre question. Si quelque chose me manque, s'il vous plaît faites le moi savoir.

0

Vous voulez utiliser File.Exists (chemin) au lieu de la ligne commentée pour vérifier si le fichier existe

3

Votre code ne semble pas correct pour moi (il ne compile pas), mais vous pouvez vérifier si un fichier existe en appelant File.Exists (nom de fichier), donc:

 foreach(FileInfo fileList in fileNames) 
     { 
     if (!File.Exists(newfilname)) 
      File.Move(oldfilename, newfilename); 
     } 
Questions connexes