生成输出文件的副本

我有一个应用程序,我在所有材料的末尾生成报告,通过点击生成报告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 

虽然这不是每个情况都有,但它有很多优点:

  1. 它简单,它的作品

  2. 这使我不必为了与用户在名称,覆盖,重命名,取消等等之间来回编写各种types的回旋而编写代码。通常情况下,代码从来不打算具有用户界面。

  3. 它使自动化更容易。

  4. 它使testing更容易。

  5. 它使得诊断用户问题变得更加容易:创build文件的时间或者创build顺序是没有问题的。

在创build报告之前,您可以遍历现有的文件并检查名称是否已经存在,并给出正确的错误消息。

  string newFileName = "new file"; string[] fileNames = Directory.GetFiles("path"); foreach (string file in fileNames) { if (file == newFileName) { MessageBox.Show("Error"); break; } }