我有一個應用程序,我通過點擊生成報告按鈕在所有材料的末尾生成報告。報告以Excel格式生成。問題是,無論何時創建一個報告,我都可以在同一位置創建另一個具有相同名稱的報告。它基本上覆蓋了第一份報告。生成輸出文件的副本
我想給用戶一個方框說你可以生成一個具有相同名稱或名稱的報告,並選擇一個不同的名稱。
感謝您的幫助!
我有一個應用程序,我通過點擊生成報告按鈕在所有材料的末尾生成報告。報告以Excel格式生成。問題是,無論何時創建一個報告,我都可以在同一位置創建另一個具有相同名稱的報告。它基本上覆蓋了第一份報告。生成輸出文件的副本
我想給用戶一個方框說你可以生成一個具有相同名稱或名稱的報告,並選擇一個不同的名稱。
感謝您的幫助!
就在你保存文件之前,你應該知道你要保存的文件名是什麼。如果是這樣,那就測試一下文件是否已經存在。如果確實如此,則提示用戶輸入新名稱並將其保存爲新名稱,例如,
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
}
在保存文件之前,請檢查具有此名稱的文件是否已存在,如果存在,請提供重命名文件。類似這樣的:
if(File.Exists(proposedFileName)){
showDialog("file exists, please choose other name");
}
創建您可以通過現有的文件迭代,並檢查名稱是否已經存在,並給予適當的錯誤信息報表之前。
string newFileName = "new file";
string[] fileNames = Directory.GetFiles("path");
foreach (string file in fileNames)
{
if (file == newFileName)
{
MessageBox.Show("Error");
break;
}
}
File.Exists()只爲你做。 – trailmax
我總是做DarkXphenomenon的建議,我一個mildate時間戳追加到形式的文件名:
<filename>_YYMMDD_HHMMSS.ext
雖然這豈不等於rught每一種情況,它有很多的優點:
它的簡單,它的工作原理
它節省了我不必編寫各種類型的迴轉信息,以便與用戶在名稱,覆蓋,重命名,取消等之間來回切換。通常情況下,代碼從未打算具有用戶界面。
它使自動化更容易。
它使測試更容易。
它使診斷用戶問題變得更加容易:無論是何時創建文件或創建文件的順序如何,
爲什麼不把時間戳追加到文件名? –