2012-09-11 83 views
0

我有一個應用程序,我通過點擊生成報告按鈕在所有材料的末尾生成報告。報告以Excel格式生成。問題是,無論何時創建一個報告,我都可以在同一位置創建另一個具有相同名稱的報告。它基本上覆蓋了第一份報告。生成輸出文件的副本

我想給用戶一個方框說你可以生成一個具有相同名稱或名稱的報告,並選擇一個不同的名稱。

感謝您的幫助!

+1

爲什麼不把時間戳追加到文件名? –

回答

2

就在你保存文件之前,你應該知道你要保存的文件名是什麼。如果是這樣,那就測試一下文件是否已經存在。如果確實如此,則提示用戶輸入新名稱並將其保存爲新名稱,例如,

string filename = @"C:\File.txt"; 

if(File.Exists(filename)){ 
    // Prompt for new one. 
    // save the report to the new name instead.  
}else 
{ 
    // save to filename 
} 
1

在保存文件之前,請檢查具有此名稱的文件是否已存在,如果存在,請提供重命名文件。類似這樣的:

if(File.Exists(proposedFileName)){ 
    showDialog("file exists, please choose other name"); 
} 
-1

創建您可以通過現有的文件迭代,並檢查名稱是否已經存在,並給予適當的錯誤信息報表之前。

  string newFileName = "new file"; 
      string[] fileNames = Directory.GetFiles("path"); 

      foreach (string file in fileNames) 
      { 
       if (file == newFileName) 
       { 
        MessageBox.Show("Error"); 
        break; 
       } 
      } 
+2

File.Exists()只爲你做。 – trailmax

1

我總是做DarkXphenomenon的建議,我一個mildate時間戳追加到形式的文件名:

<filename>_YYMMDD_HHMMSS.ext 

雖然這豈不等於rught每一種情況,它有很多的優點:

  1. 它的簡單,它的工作原理

  2. 它節省了我不必編寫各種類型的迴轉信息,以便與用戶在名稱,覆蓋,重命名,取消等之間來回切換。通常情況下,代碼從未打算具有用戶界面。

  3. 它使自動化更容易。

  4. 它使測試更容易。

  5. 它使診斷用戶問題變得更加容易:無論是何時創建文件或創建文件的順序如何,