生成输出文件的副本
我有一个应用程序,我在所有材料的末尾生成报告,通过点击生成报告button。 报告以Excel格式生成。 问题是,无论何时创build一个报告,我都可以在同一位置创build另一个具有相同名称的报告。 它基本上覆盖了第一份报告。
我想给用户一个方框说,你可以生成一个相同的名称或名称已经存在的报告,并select一个不同的名称。
谢谢您的帮助!
就在你保存文件之前,你应该知道你要保存的文件名是什么。 如果是这样,那就testing一下文件是否已经存在。 如果确实如此,则提示用户input新名称,并将其保存为新名称,例如
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"); }
我总是做DarkXphenomenonbuild议的,我在窗体的文件名上添加一个温和的时间戳:
<filename>_YYMMDD_HHMMSS.ext
虽然这不是每个情况都有,但它有很多优点:
-
它简单,它的作品
-
这使我不必为了与用户在名称,覆盖,重命名,取消等等之间来回编写各种types的回旋而编写代码。通常情况下,代码从来不打算具有用户界面。
-
它使自动化更容易。
-
它使testing更容易。
-
它使得诊断用户问题变得更加容易:创build文件的时间或者创build顺序是没有问题的。
在创build报告之前,您可以遍历现有的文件并检查名称是否已经存在,并给出正确的错误消息。
string newFileName = "new file"; string[] fileNames = Directory.GetFiles("path"); foreach (string file in fileNames) { if (file == newFileName) { MessageBox.Show("Error"); break; } }