C# C创建快捷方式图标位置不适用于网络路径

C# C创建快捷方式图标位置不适用于网络路径,c#,icons,shortcut,C#,Icons,Shortcut,我正在使用IwishRuntime库动态创建快捷方式。如果图标位于网络路径中,则设置图标位置将不起作用 例如,如果路径类似\\ServerName\Folder\Resources\Userguide.ico;图标将不会被设置。 这仅在windows 8和8.1中发生。它在以前的操作系统中运行良好 是否有解决此问题的方法 string path = System.IO.Directory.GetCurrentDirectory() + @"\Upgrade\Resourc

我正在使用IwishRuntime库动态创建快捷方式。如果图标位于网络路径中,则设置图标位置将不起作用

例如,如果路径类似\\ServerName\Folder\Resources\Userguide.ico;图标将不会被设置。 这仅在windows 8和8.1中发生。它在以前的操作系统中运行良好

是否有解决此问题的方法

            string path = System.IO.Directory.GetCurrentDirectory() + @"\Upgrade\Resources\userguide.ico";
            //Icon Location is set only if the file is there. If the file is not accessible due to security reasons 
            //Icon location is not set. The default program will be taken as the icon in this case.
            if (System.IO.File.Exists(path))
            {
                shortcut.IconLocation = path;
            }

谢谢。

你每次都需要在你的路径前面使用@\\

@"\\Network\\ExampleFolder"

它在Windows 10上运行时,我遇到了一个类似的问题,Win10 creators edition。结论是,Icon.ExtractAssociatedIcon将不会从网络路径运行。。它不会从.ico文件中读取图标,我的测试

        Icon myImage;
        string fn = sIconPath + "\\" + cSymbolIconFile;
        try
        {
            if (File.Exists(fn)) myImage = Icon.ExtractAssociatedIcon(fn); 
              else MessageBox.Show("Error: File not found.");
        } catch(Exception EE) { MessageBox.Show("Error: "+EE.Message); }
当我的sIconPath是网络路径时,我会得到一个异常,表示错误:的值对于“filePath”无效

现在要解决这个问题,您应该将图标文件放在资源中,并将其包含在链接中

在项目mydll中创建一个名为buttonresources的资源,将图标文件放入其中

将mydll.dll放入可执行主项目的引用中

现在项目中应该有一个buttonresources.resx。对名为myicon的图标进行寻址,如下所示

    System.Reflection.Assembly a1 = GetType().Assembly;
    var m = new System.Resources.ResourceManager("mydll.buttonresources", a1);
    Icon myImage = (System.Drawing.Icon)m.GetObject("myicon");

您的网络路径应该以两个斜杠开始\\ServerName\Folder。。。或者这是一个打字错误?否则,这可能是一个许可的事情。试着把一个随机的文本文件放在同一个目录中并读取它。不,这是一个打字错误。它以\\ServerName开头。实际上,它从Directory.GetCurrentDirectory读取。因此它返回正确的值。也没有权限问题。我查过了。它不适用于以“\\”开头的网络路径。即使对于我自己的机器,如果我将路径作为网络路径-\\Tharindu\Share\Resources\userguide.ico,它也不会工作。但是如果我把路径设为D:\\…等,它就会工作。