• 找不到网络名。 (Exception from HRESULT: 0x80070043)


    最近在客户电脑出现了一个怪异的报错,C# 打开保存文件对话框报如下错误:

    找不到网络名。 (Exception from HRESULT: 0x80070043) at MS.Internal.AppModel.ShellUtil.GetShellItemForPath(String path)
    at Microsoft.Win32.FileDialog.PrepareVistaDialog(IFileDialog dialog)
    at Microsoft.Win32.FileDialog.RunVistaDialog(IntPtr hwndOwner)
    at Microsoft.Win32.CommonDialog.ShowDialog()

    是因为SaveFileDialog的InitialDirectory属性设置了相对路径导致的。

    经分析是客户在Mac电脑上,通过Parallels安装Win11虚拟机,导致访问桌面、我的文档等文件夹的时候,路径是:\\Mac\User\MyDocument,正常在Windows下的路径是:C:\Users\jinqi\Documents,为什么会这样呢,是因为这个平台创建的虚拟机将Mac的常用文件夹和虚拟机内的常用文件夹共享了,参考连接

    处理办法是在设置InitialDirectory的时候,判断路径是否为网络路径,如果是,就不设置值就行了。

    代码如下:

    SaveFileDialog dialog = new SaveFileDialog();
    string defaultPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    //mac虚拟机,win11的时候,桌面文件夹是:\\Mac\User\Desktop,这时候用InitialDirectory会异常
    if (!defaultPath.StartsWith("\\"))
    {
      dialog.InitialDirectory = defaultPath;
    }

  • 相关阅读:
    在tmux中如何复制文本并粘贴到某处?
    linux下的用户密码文件/etc/shadow
    linux下openssl命令解析
    第 27 章 CSS 传统布局[下]
    第 27 章 CSS 传统布局[上]
    第 26 章 CSS3 动画效果
    第 25 章 CSS3 过渡效果
    第 24 章 CSS3 变形效果[下]
    第 23 章 CSS3 边框图片效果
    第 22 章 CSS3 渐变效果
  • 原文地址:https://www.cnblogs.com/JqkAman/p/15693814.html
Copyright © 2020-2023  润新知