【发布时间】:2013-08-29 07:27:15
【问题描述】:
我正在使用 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 也很常见,我尝试了很多,当我从文件对话框窗口中选择一个文件夹时会出现问题。之后无需执行任何操作,只需选择文件夹形式的保存文件对话框即可。该文件夹无法删除。
【问题讨论】:
-
请注意,您没有显示保存文件的代码...请确认问题与保存代码本身无关(即即使您不保存文件但只是获取文件名仍然看到文件夹被锁定)。
-
@Sayse 当我尝试添加时使用它给出错误提示 microsoft.win32.savefiledialog 应该实现 IDisposable 接口。
-
@AlexeiLevenkov 仅当我将文件保存在所选文件夹中时才会发生这种情况
-
啊抱歉,把它和 OpenFileDialog 搞混了。你应该在实际出错的地方包含代码
标签: c# winforms dialog windows-xp