Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lien symbolique sous Windows XP

16 réponses
Avatar
nicolas.cogne
Est-il possible de cr=E9er un lien symbolique sous Windows XP =E0 la
mani=E8re de la commande ln -s sous Unix ?

Sachant que :
- les raccourcis (shortcuts) .lnk ne peuvent pas convenir =E0 mon
besoin,
- les jonctions NTFS (junctions) pourraient =E9ventuellement convenir
mais ne sont disponibles que sur un m=EAme filesystem et uniquement pour
les r=E9pertoires. Quid des fichiers ?
- fsutil hardlink ne fonctionne que sur des r=E9pertoires et non des
fichiers.
- la fonction CreateSymbolicLink n'est disponible que sous Vista, pas
sous XP

6 réponses

1 2
Avatar
Doms
bonjour,

sauf que CreateHardLink ne marche que pour les fichiers et pas les
répertoires
et que CreateHardLink marche que sur le même filesystem.
donc non je ne débarque pas d'une planète extra-solaire.
CreateHardLink ne peut donc pas convenir.
Il semble que cela soit donc impossible sous XP.



Schant que l'utilitaire junction le fait sur NTFS sur Windows
2000 et suivant, je pense quand meme qu'il doit bien y avoir
une API pour faire ca :
http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx

Doms.
Avatar
Christian ASTOR
On 7 mai, 09:26, "Doms" wrote:

    Schant que l'utilitaire junction le fait sur NTFS sur Windows
    2000 et suivant, je pense quand meme qu'il doit bien y avoir
    une API pour faire ca :
   http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx



Il appelle DeviceIoControl() avec FSCTL_SET_REPARSE_POINT...
Avatar
Jean-Claude BELLAMY
a écrit dans le message de
news:
On 30 avr, 20:21, "Jean-Claude BELLAMY" <Jean-
wrote:
a écrit dans le message
denews:
Est-il possible de créer un lien symbolique sous Windows XP à la
> manière de la commande ln -s sous Unix ?

OUI

> Sachant que :
>- les raccourcis (shortcuts) .lnk ne peuvent pas convenir à mon
> besoin,
>- les jonctions NTFS (junctions) pourraient éventuellement convenir
> mais ne sont disponibles que sur un même filesystem et uniquement pour
> les répertoires. Quid des fichiers ?
>- fsutil hardlink ne fonctionne que sur des répertoires et non des
>fichiers.

??????????????????
[...]
>- la fonction CreateSymbolicLink n'est disponible que sous Vista, pas
>sous XP

Et bien mon gars, débarquerais-tu d'une planète extrasolaire ????
Cela fait 9 ANS que la fonction "CreateHardLink" (de la KERNL32.DLL)
existe !
Née avec NTFS 3.0, apparue dans Windows 2000

http://www.bellamyjc.org/fr/theoriemultiboot3.html#liens_symboliques

BOOL CreateHardLink(LPCTSTR pszFileName,
LPCTSTR pszExistingFileName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes);

cette fonction se trouve à l'index 59 (CreateHardLinkA) et 60
(CreateHardLinkW) (versions ANSI et UNICODE) de la kernel32.dll

Je donne même un exemple :
http://www.bellamyjc.org/download/hardlink.cpp(en mode console)
avec en prime l'exécutable si tu a la flemme de compiler :
http://www.bellamyjc.org/download/hardlink.exe





sauf que CreateHardLink ne marche que pour les fichiers et pas les
répertoires


Serais tu atteint par la maladie d'Alzheimer ?
Je te signales que tu avais écrit exactement le CONTRAIRE :
"... fsutil hardlink ne fonctionne que sur des répertoires et non des
fichiers."
!!!!!

Par ailleurs, tu as de graves déficiences dans le domaine de la lecture, car
je mentionne bien sur mon site
(http://www.bellamyjc.org/fr/theoriemultiboot3.html#hardlink) que
"La fonction Createhardlink ne permet de créer des liens
symboliques que vers des fichiers.
Pour créer un lien vers un dossier, la méthode à utiliser
est différente.
Il faut faire appel à la fonction CREATEDIRECTORY et à une
structure non documentée FSCTL_SET_REPARSE_POINT"

et que CreateHardLink marche que sur le même filesystem.


Oui, mais tu n'avais pas précisé dans ton cachier des charges que tu voulais
pouvoir changer de disque !

donc non je ne débarque pas d'une planète extra-solaire.


Peut-être pas "extra-solaire", mais de la mauvaise foi, oui ! ;-)

CreateHardLink ne peut donc pas convenir.


Pour ce que TOI TU as as faire, peut-être ...

Il semble que cela soit donc impossible sous XP.


Meuhhhhh non, puisque Mark Russinovich l'a fait !
http://technet.microsoft.com/fr-fr/sysinternals/bb896768.aspx

Comme je l'ai signalé sur mon site et ici plus haut, il faut faire appel à
"CREATEDIRECTORY" et "FSCTL_SET_REPARSE_POINT".

Autrefois, le lien http://www.sysinternals.com/utilities/junction.html
pointait vers l'outil et AUSSI son code source, lequel a hélas disparu
depuis que Sysinternals est passé sous contrôle de MS...:-(

MAIS je viens de retrouver un code source équivalent (écrit par Mikael
Nordell) sur le site CodeProject :
http://www.codeproject.com/KB/winsdk/junctionpoints.aspx

Et cela fonctionne depuis Windows 2000 !



--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Avatar
od555
Jean-Claude BELLAMY a écrit le 30/04/2009 à 20h21 :
a écrit dans le message de
news:
Est-il possible de créer un lien symbolique sous Windows XP à la
manière de la commande ln -s sous Unix ?



OUI

Sachant que :
- les raccourcis (shortcuts) .lnk ne peuvent pas convenir à mon
besoin,
- les jonctions NTFS (junctions) pourraient éventuellement convenir
mais ne sont disponibles que sur un même filesystem et uniquement pour
les répertoires. Quid des fichiers ?
- fsutil hardlink ne fonctionne que sur des répertoires et non des
fichiers.




??????????????????
D'où sors-tu cette conceté ????
"Madame Figaro" ?
"Huitre et Blonde?"
;-)

Je viens de le faire à l'instant même:

C:>fsutil hardlink create c:hosts.txt
c:windowssystem32driversetchosts
Liaison permanente créée pour c:hosts.txt <<===>>
c:windowssystem32driversetchosts

- la fonction CreateSymbolicLink n'est disponible que sous Vista, pas
sous XP




Et bien mon gars, débarquerais-tu d'une planète extrasolaire ????

Cela fait 9 ANS que la fonction "CreateHardLink" (de la KERNL32.DLL)
existe
!
Née avec NTFS 3.0, apparue dans Windows 2000

http://www.bellamyjc.org/fr/theoriemultiboot3.html#liens_symboliques

BOOL CreateHardLink(LPCTSTR pszFileName,
LPCTSTR pszExistingFileName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes);

cette fonction se trouve à l'index 59 (CreateHardLinkA) et 60
(CreateHardLinkW) (versions ANSI et UNICODE) de la kernel32.dll

Je donne même un exemple :
http://www.bellamyjc.org/download/hardlink.cpp (en mode console)
avec en prime l'exécutable si tu a la flemme de compiler :
http://www.bellamyjc.org/download/hardlink.exe


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org


Bonjour,

connaissez vous un logiciel qui permette de creer un lien à partir d'un lecteur reseau, car junctions et fsutil doivent avoir une "source" NTFS LOCALE sous Windows XP !

Cordialement.

Olivier
Avatar
Bertrand Lenoir-Welter
> connaissez vous un logiciel qui permette de creer un lien à partir
d'un lecteur reseau, car junctions et fsutil doivent avoir une
"source" NTFS LOCALE sous Windows XP !




-> JUNCTION.EXE de SysInternals

http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
Avatar
Bertrand Lenoir-Welter
Oups, désolé, réponse trop rapide.
1 2