0
我有一個WPF項目,我有一個自動保存的「備份」文件夾。如果用戶在保存項目時選擇了不同的名稱,我首先檢查備份文件夾,並警告他們是否已經有一個具有該名稱的項目。如果是這樣,我想重新打開SaveFileDialog並允許它們重命名。WPF C#SaveFileDialog - 重新打開對話框如果文件名存在於備用文件夾中
SaveFileDialog dlg = new SaveFileDialog();
dlg.DefaultExt = ".xml";
dlg.Filter = "xml documents (.xml)|*.xml|All Files (*.*)|*.*";
dlg.FileName = ProjectName;
bool? result = dlg.ShowDialog();
if (result == true)
{
string changedFilename = System.IO.Path.GetFileNameWithoutExtension(dlg.FileName);
if (changedFilename != CurrentProjectName)
{
if (ExistingProjectNames.Contains(changedFilename))
{
if (MessageBox.Show("Project name " + changedFilename + " already exists. Continue?", "Existing Project Name", MessageBoxButton.OKCancel, MessageBoxImage.Warning) == MessageBoxResult.OK)
{
CurrentProjectName = changedFilename;
WriteFile(dlg.FileName);
}
else
{
//go back to beginning and open dialog again so user can rename
}
這似乎很簡單,但我想不出最好的方式來做到這一點。我想過遞歸和切換語句,但似乎我讓它太複雜了。有沒有更「標準」的方式來做到這一點?
FileOk事件聽起來像我正在尋找;用來檢查用戶按下確定時間和對話框關閉時間之間的值。謝謝! – mikeminer