C# windows xp中的microsoft.win32.savefiledialog问题

C# windows xp中的microsoft.win32.savefiledialog问题,c#,winforms,dialog,windows-xp,C#,Winforms,Dialog,Windows Xp,我正在使用microsoft.win32.savefiledialog将文件保存到文件夹中仅在windows XP中将文件保存到文件夹(例如:abc)后,我无法删除abc文件夹。显示错误消息,说明另一个进程正在使用此进程。所选文件夹上似乎仍有句柄。请给我一个解决办法 以下是我的“保存文件”对话框代码: SaveFileDialog fileDialog = new SaveFileDialog(); fileDialog.DefaultExt = !string.IsNullOrEmpty(t

我正在使用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也是很常见的。我也试过很多次,当我从“文件”对话框窗口选择一个文件夹时出现了问题。之后无需执行任何操作,只需从“保存文件”对话框中选择一个文件夹即可。该文件夹无法删除。

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


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

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


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

请注意,您不会显示保存文件的代码。。。请确认问题与保存代码本身无关(即,即使您不保存文件,但仅获取文件名,您仍会看到文件夹被锁定).@Sayse当我试图使用它添加时,会出现错误,说microsoft.win32.savefiledialog应该是可实现IDisposable接口。@AlexeiLevenkov只有当我将文件保存在选定的文件夹中时才会发生此情况。抱歉,将其与OpenFileDialog混淆。。您应该包括实际出错的代码说明您没有显示保存文件的代码。。。请确认问题与保存代码本身无关(即,即使您不保存文件,但仅获取文件名,您仍会看到文件夹被锁定).@Sayse当我试图使用它添加时,会出现错误,说microsoft.win32.savefiledialog应该是可实现IDisposable接口。@AlexeiLevenkov只有当我将文件保存在选定的文件夹中时才会发生此情况。抱歉,将其与OpenFileDialog混淆。。您应该包括实际发生错误的代码