2009-06-30 18 views
0

Ich habe eine Vorlagendatei in einem Ordner "c: \ template_folder".Wie füge ich Datei nur dann zum Ordner hinzu, wenn die Datei nicht existiert C#

Zur Laufzeit werde ich einen neuen Ordner "c: \ new_folder" erstellen und die Vorlagendatei nur dann in den new_folder kopieren, wenn die Datei nicht existiert.

Beschreibung: zum ersten Mal, ich werde die Vorlagendatei in den new_folder kopieren und umbenennen mit Benutzernamen ..., so dass nach dem ersten Mal die Schleife beendet wird, habe ich 8 Excel-Dateien mit Benutzernamen als Namen die jede Datei.

für die zweite Schleife, wenn ich die Vorlagendatei in new_folder kopieren und in den Benutzernamen umbenennen muss, wenn die Datei mit dem Benutzernamen bereits existiert, dann sollte es die Datei nicht in den Ordner kopieren.

Ich bin Addin das Snippet des Codes als Referenz.

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); 
      } 
    } 
} 

bitte helfen Sie mir bei der Arbeit.

dank ramm

+0

nur eine kleine Bemerkung (Entschuldigung, dass Sie die Frage nicht beantwortet haben) Sie schreiben: if (fileList.Exists == false). fileList.Exists ist ein boolescher Wert, das Ergebnis Ihrer if-Anweisung ist ebenfalls ein boolescher Wert. Sie sollten einfach schreiben, wenn (! FileList.Exists). – TimothyP

Antwort

3

existiert bedingt nur eine Datei zu verschieben, wenn es nicht bereits vorhanden ist Du würdest es so machen:

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

Dein Code-Ausschnitt verwirrt mich, also hoffe ich, dass ich deine Frage richtig beantwortet habe. Wenn mir etwas fehlt, lass es mich wissen.

0

Sie möchten zu überprüfen, File.Exists (Pfad) statt der kommentierten out Linie verwenden, wenn die Datei

3

Ihr Code nicht korrekt erscheinen mir (es nicht kompiliert), aber Sie können überprüfen, ob eine Datei durch den Aufruf File.Exists (Dateiname) vorhanden ist, so:

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