我有一个应用程序,我通过点击生成报告按钮在所有材料的末尾生成报告。报告以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每一种情况,它有很多的优点:
它的简单,它的工作原理
它节省了我不必编写各种类型的回转信息,以便与用户在名称,覆盖,重命名,取消等之间来回切换。通常情况下,代码从未打算具有用户界面。
它使自动化更容易。
它使测试更容易。
它使诊断用户问题变得更加容易:无论是何时创建文件或创建文件的顺序如何,
为什么不把时间戳追加到文件名? –