2012-02-08 7 views
5

Usando C#, ¿cómo puedo eliminar un acceso directo del escritorio de un usuario?¿Cómo se eliminan los accesos directos desde el escritorio del usuario?

intentado esto sin éxito:

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

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

¿Qué me falta? ¡Aprecie cualquier consejo sobre esto!

Respuesta

11

intente lo siguiente:

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

tuve este problema en esta pregunta que hice:

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

La respuesta que obtuve fue esta:

Al parecer, en el escritorio de Windows 7 no existe realmente en el ruta

C: \ Users \ nombre de usuario \ Desktop

El sistema pretende que lo hace en el símbolo del sistema y en Windows explorer. Pero como no está allí, la parte de SelectedPath que requiere que su ruta esté bajo RootFolder no permite configurar la ruta en de esa manera.

Es posible que este sea el problema. Debe usar la función Environment.GetFolderPath para obtener un control en el escritorio real. :)

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

:)) Nombre de usuario win7 standart pública

0

que tenía el mismo escenario en el que tenía que comprobar si existe el acceso directo y luego eliminarla . Utilicé el siguiente código

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")); 
} 
Cuestiones relacionadas