[英]microsoft.win32.savefiledialog issue in 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也是很常见的。 之后无需执行任何操作,只需选择一个文件夹形式的“保存文件”对话框即可。 该文件夹无法删除。
这是完全正常的。 打开目录对象的不是另一个进程,而是您的进程。 您的代码使该目录成为进程的默认工作目录。 您可以从Environment.CurrentDirectory属性中看到一些内容。
将SaveFileDialog.RestoreDirectory
属性设置为true可以避免这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.