Henrik Bengtsson
2014-Jan-07 00:24 UTC
[Rd] file.info() on a file.symlink():ed file on Windows - is help correct?
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