file.path is the normal solution. People seem to show it with the sep set,
but I think the whole point is it knows what separator to use so:

file.path("first folder" , "second_folder" , "file.name")

file.path(getwd(), "subfolder", "file.name")

Should both work across any platform. But it may forward slash them on
windows, since that usually works. UNC folders are a PITA on R in general
in my experience.

Since R 4.0 you can use a raw string using r"( the string )". E.g.

r"(C:\windows\system32)"

And this returns - "C:\\windows\\system32"

Which seems to be the question the OP asked, even if it might not have been
the question they wanted to ask.

On Fri, 8 May 2026, 07:23 Rui Barradas via R-help, <[email protected]>
wrote:

> Hello,
>
> Inline.
>
> Às 03:53 de 08/05/2026, Spencer Graves escreveu:
> > See also:
> >
> >
> > file.path(..., fsep = .Platform$file.sep)
>
> On Windows, .Platform$file.sep outputs "/".
>
> >
> >
> > https://web.mit.edu/~r/current/lib/R/library/base/html/file.path.html
>
>
> # on Windows 11 this outputs "/"
> .Platform$file.sep
> # [1] "/"
>
> file.path(R.home(), "path", "to", "file", fsep = .Platform$file.sep)
> # [1] "C:/PROGRA~1/R/R-4.6.0/path/to/file"
>
> # warning, file cannot be found (it doesn't exist)
> # but now fsep is "\\"
> file.path(R.home(), "path", "to", "file", fsep = .Platform$file.sep) |>
> normalizePath()
> # [1] "C:\\PROGRA~1\\R\\R-4.6.0\\path\\to\\file"
>
> # no warning, fsep is "\\", ?shortPathName is meant for DOS/Windows
> 8-dot-3 file names
> file.path(R.home(), "path", "to", "file", fsep = .Platform$file.sep) |>
> shortPathName()
> # [1] "C:\\PROGRA~1\\R\\R-4.6.0\\path\\to\\file"
>
> sessionInfo()
> # R version 4.6.0 (2026-04-24 ucrt)
> # Platform: x86_64-w64-mingw32/x64
> # Running under: Windows 11 x64 (build 22631)
> #
> # Matrix products: default
> #   LAPACK version 3.12.1
> #
> # locale:
> # [1] LC_COLLATE=Portuguese_Portugal.utf8
> LC_CTYPE=Portuguese_Portugal.utf8
> # [3] LC_MONETARY=Portuguese_Portugal.utf8 LC_NUMERIC=C
>
> # [5] LC_TIME=Portuguese_Portugal.utf8
> #
> # time zone: Europe/Lisbon
> # tzcode source: internal
> #
> # attached base packages:
> # [1] stats     graphics  grDevices utils     datasets  methods   base
> #
> # loaded via a namespace (and not attached):
> # [1] compiler_4.6.0
> #
>
>
> >
> >
> > I'm not sure, but help(".Platform") seems to support what I get from
> > Richard O'Keefe, that "you can safely use / in file name" perhaps no
> > matter which platform. At one point that was not true, but it may be the
> > case now.
>
> Yes, that's true for a (long) while, now.
>
> [I am not sure about DOS 2, though. I once programmed a GW-BASIC uniroot
> type of equations solver on DOS 2.(*) and called it EQ.POLY.BAS. The
> result was to see DIR list it as EQ<TAB>POL but GW-BASIC only accepted
> its real name. (*) I don't remember the sub-version number.]
>
>
> Hope this helps,
>
> Rui Barradas
>
>
> Sorry: I cannot easily check. Spencer Graves
> >
> >
> > On 5/7/26 21:30, Richard O'Keefe wrote:
> >> This isn't an R thing.  The Windows system calls that accept file names
> >> accept both kinds of slash indifferently.  I've seen it said that this
> >> goes
> >> back to MS-DOS 2, but certainly it's all NT versions.  If you need to
> >> link
> >> C and/or Fortran with R, you can safely use / in file name strings in
> >> those
> >> languages too.
> >>
> >> On Fri, 8 May 2026 at 01:18, Chris Ryan <[email protected]>
> >> wrote:
> >>
> >>> It had been about a year since I had worked in Windows, and apparently
> I
> >>> had gotten rusty. Forward slashes in path names, as in
> >>>
> >>> read.csv("e:/path/to/datafileOnWindows.csv")
> >>>
> >>> work just fine in R on Windows.
> >>>
> >>> Sorry for the bother.
> >>>
> >>> --Chris Ryan
> >>>
> >>>
> >>>
> >>> Chris Ryan wrote:
> >>>> I'm trying to generalize one of my scripts so that it will run on my
> >>>> Linux Mint computer at home and my client's Windows 11 computer at
> >>>> work.
> >>>>   I'm encountering trouble when setting file paths, conditional on
> >>>> which
> >>>> computer the script is running on. It's the Windows backslash issue
> >>>>
> >>>
> >>> ______________________________________________
> >>> [email protected] mailing list -- To UNSUBSCRIBE and more, see
> >>> https://stat.ethz.ch/mailman/listinfo/r-help
> >>> PLEASE do read the posting guide
> >>> https://www.R-project.org/posting-guide.html
> >>> and provide commented, minimal, self-contained, reproducible code.
> >>>
> >>
> >>     [[alternative HTML version deleted]]
> >>
> >> ______________________________________________
> >> [email protected] mailing list -- To UNSUBSCRIBE and more, see
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide https://www.R-project.org/posting-
> >> guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >
> > ______________________________________________
> > [email protected] mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide https://www.R-project.org/posting-
> > guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
> ______________________________________________
> [email protected] mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> https://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

        [[alternative HTML version deleted]]

______________________________________________
[email protected] mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to