FileUtils.ln cross platform?


#1

What happens when you use FileUtils.ln on a Windows system. Does it
fail? Is that why Jim W. uses #safe_ln, eg.

LINKING_SUPPORTED = [true]

Attempt to do a normal file link, but fall back

to a copy if the link fails.

def safe_ln(*args)
unless LINKING_SUPPORTED[0]
cp(*args)
else
begin
ln(*args)
rescue Errno::EOPNOTSUPP
LINKING_SUPPORTED[0] = false
cp(*args)
end
end
end

If so, is there a better way? Or why wouldn’t this be built into Ruby.

Thanks,
T.


#2

On Jun 12, 12:51 pm, Trans removed_email_address@domain.invalid wrote:

else

Thanks,
T.

With 1.8.5 FileUtils.ln simply copied the file. Without digging into
changelogs, I can only speculate that it may have been an unsupported
op in earlier versions of Ruby, and that’s why Jim added extra code.

Note that with the advent of Vista the issue of symlinks on Windows
will need to be revisited.

Regards,

Dan


#3

On Jun 12, 4:41 pm, Daniel B. removed_email_address@domain.invalid wrote:

to a copy if the link fails.

end

end

If so, is there a better way? Or why wouldn’t this be built into Ruby.

Thanks,
T.

With 1.8.5 FileUtils.ln simply copied the file. Without digging into
changelogs, I can only speculate that it may have been an unsupported
op in earlier versions of Ruby, and that’s why Jim added extra code.

Excellent. Glad I don;t have to mess with it. Thanks Dan!

Note that with the advent of Vista the issue of symlinks on Windows
will need to be revisited.

Indeed. I heard it supports them, but later heard that they aren’t
really the same thing. Are you using Vista yet. Do you know?

T.


#4

On Jun 12, 4:41 pm, Trans removed_email_address@domain.invalid wrote:

On Jun 12, 4:41 pm, Daniel B. removed_email_address@domain.invalid wrote:

Note that with the advent of Vista the issue of symlinks on Windows
will need to be revisited.

Indeed. I heard it supports them, but later heard that they aren’t
really the same thing. Are you using Vista yet. Do you know?

T.- Hide quoted text -

I don’t have Vista yet. I’m waiting until Leopard is released, at
which point I’ll setup a dual boot config on my Mac tower. Hopefully,
SP 1 will be out by then.

As for whether or not they’re the same thing, the docs for
CreateSymbolicLink() sure seem to indicate they are:

http://msdn2.microsoft.com/en-us/library/aa363866.aspx

Regards,

Dan


#5

On Jun 13, 10:30 am, Daniel B. removed_email_address@domain.invalid wrote:

really the same thing. Are you using Vista yet. Do you know?
http://msdn2.microsoft.com/en-us/library/aa363866.aspx
Yup. You are right.

“Microsoft has implemented its symbolic links to function just like
UNIX links.”

http://msdn2.microsoft.com/en-us/library/aa365680.aspx

Somewhere I picked up some bad info. Thanks for setting me straight.

T.