Tony Plate
2009-Jun-26 23:50 UTC
[Rd] should Sys.glob() cope with a UNC windows path beginning with backslashes?
I find that Sys.glob() doesn't like UNC paths where the initial slashes are backslashes. The help page for Sys.glob() doesn't specificly mention UNC paths, but does say: "File paths in Windows are interpreted with separator \ or /." Is the failure to treat a path beginning with a double-backslash as a UNC network drive path the intended behavior? E.g., on a Windows system where \\foo is a network drive and \\foo\bar exists, I see:> Sys.glob("//foo/bar")[1] "//foo/bar"> Sys.glob("//foo\\bar")[1] "//foo\\bar"> Sys.glob("\\\\foo/bar")character(0)> Sys.glob("\\\\foo\\bar") >(the pattern of behavior seems to be that initial backslashes are not equivalent to forward slashes, but later backslashes are.) This is not a big deal, but I noticed it because it results in Rcmd check giving a spurious warning when started from a cygwin shell with a working directory that is a network drive specified as a UNC path. This happens because mandir in tools:::.writePkgIndices has the form \\foo/bar/R/packages/mypkg/man, which results in the false warning "there is a 'man' dir but no help pages in this package." A simple workaround was to use a drive-letter mount for the network drive.> sessionInfo()R version 2.9.1 (2009-06-26) i386-pc-mingw32 locale: LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base>-- Tony Plate
Prof Brian Ripley
2009-Jun-27 05:16 UTC
[Rd] should Sys.glob() cope with a UNC windows path beginning with backslashes?
On Fri, 26 Jun 2009, Tony Plate wrote:> I find that Sys.glob() doesn't like UNC paths where the initial slashes are > backslashes. The help page for Sys.glob() doesn't specificly mention UNC > paths, but does say: "File paths in Windows are interpreted with separator \ > or /." Is the failure to treat a path beginning with a double-backslash as a > UNC network drive path the intended behavior?Yes. There are general warnings about non-POSIX Windows paths in several of the help files. The following comments should alert you to possible restrictions: The \code{glob} system call is not part of Windows, and we supply an emulation. File paths in Windows are interpreted with separator \code{\\} or \code{/}. Paths with a drive but relative (such as \code{c:foo\\bar}) are tricky, but an attempt is made to handle them correctly. If you want to submit a well-tested patch, it will be considered.> > E.g., on a Windows system where \\foo is a network drive and \\foo\bar > exists, I see: > >> Sys.glob("//foo/bar") > [1] "//foo/bar" >> Sys.glob("//foo\\bar") > [1] "//foo\\bar" >> Sys.glob("\\\\foo/bar") > character(0) >> Sys.glob("\\\\foo\\bar") >> > (the pattern of behavior seems to be that initial backslashes are not > equivalent to forward slashes, but later backslashes are.) > > This is not a big deal, but I noticed it because it results in Rcmd check > giving a spurious warning when started from a cygwin shell with a working > directory that is a network drive specified as a UNC path. This happens > because mandir in tools:::.writePkgIndices has the form > \\foo/bar/R/packages/mypkg/man, which results in the false warning "there is > a 'man' dir but no help pages in this package." A simple workaround was to > use a drive-letter mount for the network drive. > >> sessionInfo() > R version 2.9.1 (2009-06-26) i386-pc-mingw32 > locale: > LC_COLLATE=English_United States.1252;LC_CTYPE=English_United > States.1252;LC_MONETARY=English_United > States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base >> > > -- Tony Plate > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Reasonably Related Threads
- Sys.glob() doesn't handle a UNC windows path beginning with backslashes
- UNC windows path beginning with backslashes: normalizePath bug??
- Taking a stab at a pure Ruby Dir.glob
- [PATCH 1/2] daemon: glob: do not return directories with trailing slash
- Problem with configure's detection of glob on 2.6.0 (PR#10468)