【发布时间】:2020-12-24 07:50:00
【问题描述】:
我正在使用 FolderBrowserDialog 来选择用户可以保存文件的文件夹。打开文件夹浏览对话框时,应用程序崩溃并引发以下异常。
System.InvalidOperationException: Unable to retrieve the root folder.
at System.Windows.Forms.FolderBrowserDialog.RunDialog(IntPtr hWndOwner)
at System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner)
at TestApp.GenerateExcelReport()
当我的应用程序在 Citrix 环境中启动时,用户正在使用来自云的应用程序。因此,并非所有用户都面临这个问题,但很少有人面临。
string folderPath = "X:\\Reports";
if (!Directory.Exists(folderPath))
{
Directory.CreateDirectory(folderPath);
}
FolderBrowserDialog folderDialog = new FolderBrowserDialog();
folderDialog.ShowNewFolderButton = true;
folderDialog.SelectedPath = folderPath;
DialogResult dialogResult = folderDialog.ShowDialog();
if (dialogResult == DialogResult.OK)
{
folderPath = folderDialog.SelectedPath;
}
else
{
return;
}
请提出在显示 FolderBrowseDialog 时出现此问题的根本原因。另外,建议可能的修复方法以防止出现此异常。
感谢和问候,
雇佣小伙子
【问题讨论】:
-
我假设 X 是一个网络驱动器。也许它没有连接或被识别为连接?
-
看来 Directory.CreateDirectory 没有抛出。该方法返回一个值,看看它是什么。它是网络映射驱动器吗?尽量不要设置 SelectedPath 属性。查看注册表中是否有此 Key 和 Value:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system->"EnableLinkedConnections"=[DWORD]:00000001
标签: c# wpf folderbrowserdialog