8
votes

.NET Lire le contenu binaire du fichier .lnk

Je veux lire le contenu binaire d'un fichier .lnk. Tant que la cible du raccourci (fichier LNK) existe, cela fonctionne bien avec io.file.readallbytes (fichier de chaîne).

mais

Si la cible du raccourci n'existe pas (crois-moi, je le veux), la méthode ne renvoie que zéro. Je suppose que c'est parce que le système d'exploitation suit le lien et s'il n'existe pas, il renvoie zéro

Y a-t-il un moyen de contourner le fait que le cadre suit la cible de la .lnk avant d'afficher le contenu du fichier .Lnk?


0 commentaires

3 Réponses :


0
votes

Je ne crois pas que Readallbytes induit le système d'exploitation de suivre la LNK à sa cible. Je suppose que le système d'exploitation a déjà résolu le fichier LNK (peut-être que lorsque vous avez parcouru le fichier dans Windows Explorer).


1 commentaires

Il s'agit d'un raccourci annoncé d'un autre ordinateur. Le lien ne peut donc jamais être résolu.



23
votes

Cela n'a pas beaucoup de sens, n'a pas de moyen facile de le vérifier. Je pense que la meilleure approche consiste à lire le fichier .lnk de la manière dont il est censé être lu. Vous pouvez utiliser COM pour le faire, le CLASSE SHITLLINKOBJECT implémente l'interface ISHELLLINK. Commencez avec Project + Ajouter une référence, onglet Parcourir et accédez à C: \ Windows \ System32 \ shell32.dll. Qui génère une bibliothèque Interop. Écrivez un code comme ceci: xxx



0
votes

active le fichier a été verrouillé car il a été copié à partir d'une autre machine (j'utilise Server 2008 R2) le déverrouillage, il a renvoyé le comportement à attendu.

stupide moi.


0 commentaires