如何检查文件是否存在询问用户是否要销毁它并再次创建相同的文件?

时间:2013-06-10 09:29:11

标签: c# winforms

这是代码:

private void beginOperationToolStripMenuItem_Click(object sender, EventArgs e)
        {
            changeFileNameToolStripMenuItem.Enabled = false;
            if (File.Exists(fullDefaultDirectory))
            {
                File.Delete(fullDefaultDirectory);
            }
            ffmp.Start(fullDefaultDirectory, 25);//"test.avi", @"d:\", 25);
            timer1.Enabled = true;
            startStop = true;
        }

现在我检查文件是否存在并删除它,但这不是好办法,因为我需要一个文件在硬盘上。

所以我想做的是:

  1. 如果存在,请询问用户是删除它还是使用相同的名称运行它。
  2. 如果删除,请打开savedialog并让用户设置新文件名。
  3. 如果未删除,只需在现有文件上运行并创建相同的文件名。
  4. 这是我已经拥有的saveialog:

    private void changeFileNameToolStripMenuItem_Click(object sender, EventArgs e)
            {
                 SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                 saveFileDialog1.Filter = "Avi|*.avi";
                 saveFileDialog1.Title = "Save an Avi File";
                 saveFileDialog1.ShowDialog();
                 // If the file name is not an empty string open it for saving.
                 if (saveFileDialog1.FileName != "")
                 {
                  //outputFileName = Path.GetFileName(saveFileDialog1.FileName);
                  //outputDirectory = Path.GetDirectoryName(saveFileDialog1.FileName);
                  fullDefaultDirectory = saveFileDialog1.FileName;
                  Options_DB.Set_Video_File(fullDefaultDirectory);
                 }
            }
    

    但我在谈论用户没有更改任何内容并且变量fullDefaultDirectory包含相同的目录和文件名的情况,然后让用户决定是删除还是运行它。

    fullDefaultDirectory总是包含文件名,因为我有一个设置文件名文本文件,我保存用户选择的目录和文件名。 如果他没有选择任何东西,默认是我默认的一些文件,如果他选择了一个文件,它将创建用户选择的文件。

    我需要解决文件已经存在的情况。

1 个答案:

答案 0 :(得分:1)

SaveFileDialog类已使用OverwritePrompt属性覆盖了此属性,这将导致对话框询问用户是否确定要覆盖现有文件。