1

这是代码:

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. 如果删除打开保存对话框并让用户设置一个新的文件名。
  3. 如果没有删除,只需运行现有文件并创建相同的文件名。

这是我已经拥有的保存对话框:

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 始终包含一个文件名,因为我有一个设置文件名文本文件,我在其中保存用户选择的目录和文件名。如果他没有选择任何东西,默认是我默认的某个文件,如果他选择了一个文件,它将创建用户选择的文件。

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

4

1 回答 1

1

该类已经使用OverwritePromptSaveFileDialog属性涵盖了这一点,这将导致对话框询问用户是否确定要覆盖现有文件。

于 2013-06-10T11:23:25.180 回答