创建文件夹名称具有unicode字符的快捷方式

我一直在使用以下代码动态创建快捷方式。 但是当文件夹名称具有像Thai,greek语言这样的unicode字符时,targetPath会抛出Argumentexception。

IWshRuntimeLibrary.WshShell shell = new WshShell(); IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutLocation); shortcut.Description = "My shortcut description"; // The description of the shortcut shortcut.WorkingDirectory = currentPath; shortcut.TargetPath = targetFileLocation; // The path of the file that will launch when the shortcut is run shortcut.Save(); 

从文件系统引用Shell32.dll,转到“添加引用…”对话框的COM选项卡,然后选择名为“Microsoft Shell Controls And Automation”的组件

 string destPath = @"c:\temp"; string shortcutName = @"नमस्ते.lnk"; // Create empty .lnk file string path = System.IO.Path.Combine(destPath, shortcutName); System.IO.File.WriteAllBytes(path, new byte[0]); // Create a ShellLinkObject that references the .lnk file Shell32.Shell shl = new Shell32.ShellClass(); Shell32.Folder dir = shl.NameSpace(destPath); Shell32.FolderItem itm = dir.Items().Item(shortcutName); Shell32.ShellLinkObject lnk = (Shell32.ShellLinkObject)itm.GetLink; // Set the .lnk file properties lnk.Path = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\notepad.exe"; lnk.Description = "nobugz was here"; lnk.Arguments = "sample.txt"; lnk.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); lnk.Save(path);