我正在使用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来说也很常见,我尝试了很多,当我从文件对话框窗口中选择一个文件夹时发出愉快的声音。之后无需执行任何操作,只需选择文件夹形式保存文件对话框即可。该文件夹无法删除。
答案 0 :(得分:3)
这是完全正常的。它不是打开目录对象的另一个进程,它是您的进程。您的代码使该目录成为您的进程的默认工作目录。您可以从Environment.CurrentDirectory属性中看到的东西。
将SaveFileDialog.RestoreDirectory
属性设置为true以避免这种情况。