2012-02-08 5 views
5

C#を使用すると、ユーザーのデスクトップからショートカットを削除するにはどうすればよいですか?ユーザーのデスクトップからショートカットをプログラムで削除する方法はありますか?

はありません成功でこれを試してみました:

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

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

私は何をしないのですか?これについてのアドバイスを感謝します!

答えて

11

次のことを試してみてください。

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

私は尋ねたこの質問でこの問題を持っていた:

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

を私が得た答えは、このでした:どうやら、勝利7でデスクトップが実際に存在しない

パス

c:\ Users \ username \ Desktop

システムはそれをふりますコマンドプロンプトとウィンドウで エクスプローラを実行します。しかしそこには存在しないので、 がそのルートをRootFolderの下に置く必要があるSelectedPathの部分は、パスを に設定することを邪魔します。

これは問題です。実際のデスクトップでハンドルを取得するには、Environment.GetFolderPath関数を使用する必要があります。 :)

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

:))Win7のスタンダールのユーザー名、パブリック

0

私はショートカットが存在するかどうかを確認し、それを削除しなければならなかった同じシナリオを持っていました。私は次のコードを使用しました

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")); 
} 
関連する問題