[Rd] A strange behaviour of file.path in Windows? (PR#13119)

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Oct 3 13:02:39 CEST 2008


On Fri, 3 Oct 2008, pego.enrico at tiscali.it wrote:

> Full_Name: Enrico Pegoraro
> Version: 2.7.2
> OS: Windows (Vista or Xp PRO) Italian
> Submission from: (NULL) (87.4.189.202)
>
>
> If you send these lines of code:
>
> outdir="c:/pippo"
> file.path(outdir,"pluto.html")
>
> R replies correctly:
>
> [1] "c:/pippo/pluto.html"
>
> But if you change the first steps to:
>
> outdir=""
> file.path(outdir,"pluto.html")
>
> R replies (uncorrectly, I think)

> [1] "/c:/pippo/pluto.html"

Not for me!  I get

> outdir=""
> file.path(outdir,"pluto.html")
[1] "/pluto.html"

which is as documented, hence correct.  Furthermore, the code cannot 
possibly give your answer unless 'c:/pippo' has some special status on 
your system, and you haven't told us anything about that.

If you do

file.path("", "c:/pippo", "pluto.html")

you get what you indicate, but that is user error (an empty server/share 
specification).

>
> This problem influence the R2HTML package too, which, if you send a line as:
>
> targetHtml=HTMLInitFile(outdir="",filename="htmlFile",Title ="Title")
>
> in windows it submit an error because of file.path() error.

It will affect any such misuse of file.path, of course.  It really is not 
a good idea to use empty file path elements, especially on Windows[*]. 
If you mean the current directory, use ".".

[*] On Unix // is equivalent to /.  On Windows \\ or // may have a special 
meaning (a share) or be regarded as invalid.  A trailing  / or \ can be 
disastrous.

> Thank you
> Enrico


-- 
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



More information about the R-devel mailing list