2009-06-30 25 views
0

我有一個模板文件在文件夾「c:\ template_folder」。如何將文件添加到文件夾只有當文件不存在使用C#

在運行時,我將創建一個新文件夾「c:\ new_folder」,並希望只有在文件不存在時纔將模板文件複製到new_folder。

描述: 第一次,我會將模板文件複製到new_folder並用用戶名重新命名......這樣,第一次循環結束後,我將有8個用戶名爲excel的文件名每個文件。

對於第二個循環,如果我必須將模板文件複製到new_folder並將其重命名爲用戶名,如果具有用戶名的文件已經存在,那麼它不應該將該文件複製到該文件夾​​。

我加入了參考代碼片段。

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

請幫我這個工作。

感謝 拉姆

+0

只是一個小的話(抱歉不回答問題)你寫:if(fileList.Exists == false)。 fileList.Exists是一個布爾值,你的if語句的結果也是一個布爾值。你應該簡單地寫if(!fileList.Exists)。 – TimothyP 2009-06-30 12:38:12

回答

3

要有條件地移動文件,只有當它不存在你會這樣做:

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

你的代碼片段混淆了我,所以我希望我已經正確地回答了你的問題。如果我錯過了什麼,請告訴我。

0

你想用File.Exists(路徑),而不是註釋掉線,以檢查文件是否存在

3

您的代碼似乎並不正確,我(不編譯),但你可以檢查文件是否通過調用File.Exists(文件名)存在,因此:

 foreach(FileInfo fileList in fileNames) 
     { 
     if (!File.Exists(newfilname)) 
      File.Move(oldfilename, newfilename); 
     } 
相關問題