develooper Front page | perl.perl5.porters | Postings from April 2003

RE: windows, shortcuts and 'use lib'

Thread Previous | Thread Next
From:
Orton, Yves
Date:
April 28, 2003 07:16
Subject:
RE: windows, shortcuts and 'use lib'
Message ID:
71B318898201D311845C0008C75DAD1C0896099B@defra1ex2
> > Perl making them work (and work transparently) would be a big plus.
> 
> False. Windows doesn't have symlinks. If perl pretends windows has
> symlinks, it is lying to you. What the devil do you do if you *want*
> to open and read the .lnk file (which I have often done when I
> wanted to gather info about the shortcuts on my system)? The readlink
> interface is utterly inadequate to real all the different kinds of
> things that make up all the different kinds of .lnk files out there.

I note that 

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/pla
tform/shell/programmersguide/shell_int/shell_int_programming/shortcuts/short
cut.asp

contains sample VC++ code for generically resolving a link (shortcut) to a
path, 
and since my reading of perlfunc indicates that it should return a path I
dont really see your point.

Even cooler is that as its posted publicly I suspect its in the PD and can
be used freely. IANAL :-)

> 
> > Anyone know why microsoft doesn't just bite the bullet and 
> > put them in? Is it a limit in NTFS?
>
> I have often heard the claim that NTFS can support them, but I've
> never seen anyone actually try to do it (and FAT and FAT32 definitely
> cannot support them, which is probably an argument for not supporting
> them in NTFS).

Im not clear on this. They have functionality that provides something very
like the unix file 
symlink (im not going to quibble about how equivelent they are) so Im not
sure that you can 
say they dont provide this.

Also on NTFS you can have a junction which is a directory symlink (and
totally transparent to the 
end user). And you have been able to do symbolic volumes using SUBST since
the Dos/FAT days. (See 
the junction tool at www.sysinternals.com).

I suspect that you can use reparse points to implement real(tm) symlinks but
I dont know for sure.

Either way by my count Win32 supports at least three different types of
symlinks of different capabilities, 
implementations, and levels of transparency to the end user applications.

Just to throw some oil on the fire!

Yves


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About