windows xp中的microsoft.win32.savefiledialog问题

时间:2013-08-29 07:27:16

标签: c# winforms dialog windows-xp

我正在使用microsoft.win32.savefiledialog将文件保存在文件夹中。 仅在Windows XP 中,将文件保存在文件夹(例如:abc)后,我无法删除abc文件夹。显示错误消息,说明另一个进程正在使用它。似乎句柄仍保留在选定的文件夹中。请给我一个解决方案。

以下是我的保存文件对话框代码:

SaveFileDialog fileDialog = new SaveFileDialog();

fileDialog.DefaultExt = !string.IsNullOrEmpty(this.DefaultExtension) ? this.DefaultExtension : "*.*";
fileDialog.Filter = !string.IsNullOrEmpty(Filter) ? Filter : "All Files|*.*";
fileDialog.FileName = !string.IsNullOrEmpty(this.FileName) ? this.FileName : string.Empty;
fileDialog.InitialDirectory = !string.IsNullOrEmpty(this.DefaultPath) ? this.DefaultPath : string.Empty;

if (fileDialog.ShowDialog().Value == true)
{
    fileName = fileDialog.FileName;
}
else
{
    fileName = string.Empty;
}            

return fileName;

已编辑:

这对于System.Windows.Forms来说也很常见,我尝试了很多,当我从文件对话框窗口中选择一个文件夹时发出愉快的声音。之后无需执行任何操作,只需选择文件夹形式保存文件对话框即可。该文件夹无法删除。

1 个答案:

答案 0 :(得分:3)

这是完全正常的。它不是打开目录对象的另一个进程,它是您的进程。您的代码使该目录成为您的进程的默认工作目录。您可以从Environment.CurrentDirectory属性中看到的东西。

SaveFileDialog.RestoreDirectory属性设置为true以避免这种情况。