如何以编程方式从用户桌面删除快捷方式?

时间:2012-02-08 14:22:50

标签: c# icons shortcut delete-file

使用C#,如何从用户桌面删除快捷方式?

试了这个没有成功:

string WinUser = WindowsIdentity.GetCurrent().Name;
WinUser = WinUser.Substring(WinUser.LastIndexOf("\\") + 1);

File.Delete("C:\\Users\\" + WinUser + "\\Desktop\\Touch Data.lnk");

我错过了什么?感谢任何关于此的建议!

4 个答案:

答案 0 :(得分:12)

尝试以下方法:

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
File.Delete(Path.Combine(desktopPath, "Touch Data.lnk"));

答案 1 :(得分:3)

我在这个问题中遇到过这个问题:

Why does FolderBrowserDialog not allow the desktop as SelectedPath when RootFolder is MyComputer?

我得到的答案是:

  

显然,Win 7中的桌面实际上并不存在于路径

中      

C:\ Users \用户名\桌面

     

系统在命令提示符和Windows中假装它   探险家。但由于它不存在,所以SelectedPath的那部分   要求其路径在RootFolder下不允许设置路径   那样。

这可能是问题所在。您应该使用Environment.GetFolderPath函数来获取真实桌面上的句柄。 :)

答案 2 :(得分:1)

我有同样的情况,我必须检查快捷方式是否存在,然后将其删除。我使用了以下代码

string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
if(System.IO.File.Exists(Path.Combine(desktopPath , "shortcut.lnk")))
{
 System.IO.File.Delete(Path.Combine(desktopPath , "shortcut.lnk"));
}

答案 3 :(得分:0)

System.IO.File.Delete("C:/Users/Public/Desktop/Game.lnk");

:))赢得7个标准用户名public