[Rd] file.info() on a file.symlink():ed file on Windows - is help correct?
Henrik Bengtsson
hb at biostat.ucsf.edu
Tue Jan 7 01:24:30 CET 2014
Is the following passage from help("file.info"):
"Junction points and symbolic links are followed, so information is
given about the file/directory to which the link points rather than
about the link."
correct? Could it be that Windows was not considered?
help("file.symlink") mentions several Windows-related issues, but none
of those are related to the following. On Windows 7 with a NTFS file
system I get that file.info() returns information about the symbolic
link rather than the file it points to.
REPRODUCIBLE EXAMPLE:
# Create a file
> cat("Hello", file="foo.txt")
> file.info("foo.txt")
size isdir mode mtime
foo.txt 5 FALSE 666 2014-01-06 15:53:27
ctime atime exe
foo.txt 2014-01-06 15:43:07 2014-01-06 15:43:07 no
> bfr <- readChar("foo.txt", n=9)
# Create a symbolic link
> file.symlink("foo.txt", "link.exe")
TRUE
> file.info("link.exe")
size isdir mode mtime
link.exe 0 FALSE 777 2014-01-06 15:59:55
ctime atime exe
link.exe 2014-01-06 15:59:55 2014-01-06 15:59:55 msdos
> bfrL <- readChar("link.exe", n=9)
> stopifnot(identical(bfrL, bfr))
Note how file.info("link.exe")$size is 0 (zero) and none (except from
'dir') mirrors the file that the link points to. I've verified that
'link.exe' is a symbolic link (and not a hard link); Windows reports
('dir' gives "01/06/2014 03:59 PM <SYMLINK> link.exe
[foo.txt]").
As a follow up, if the above is the proper/intended behavior of
file.info(), is it possible from within R to follow the link
"link.exe" to the target file "foo.txt" - such that one can get the
file.info() of that file instead? (As help("Sys.readlink") says, it
won't work on Windows).
Thank you,
Henrik
> sessionInfo()
R Under development (unstable) (2014-01-05 r64665)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets
[6] methods base
loaded via a namespace (and not attached):
[1] tools_3.1.0
More information about the R-devel
mailing list