2012-02-08 2 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 : \ 사용자 \ 사용자 이름 \ 바탕 화면

시스템을 척 명령 프롬프트 및 창에서 수행합니다. 탐색기. 그러나 거기에 있지 않기 때문에 의 경로가 RootFolder 아래에 있어야하는 SelectedPath 부분은 경로를 에 설정하는 것을 허용하지 않습니다.

이것이 문제 일 수 있습니다. 실제 데스크탑에서 핸들을 얻으려면 Environment.GetFolderPath 함수를 사용해야합니다. :)

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

:)) WIN7의 STANDART 사용자 이름

내가 삭제 한 다음 바로 가기가 존재하는지 확인해야했다 같은 시나리오를했다
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")); 
} 
관련 문제