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

このSaveFileDialogクラスは、OverwritePromptプロパティで既にこれをカバーしています。これにより、既存のファイルを上書きするかどうかを確認するダイアログがユーザーに表示されます。

于 2013-06-10T11:23:25.180 に答える