Open a file or URL using Windows File Associations using shell.exec()
but makes some tweaks
to filenames to make them more likely to be opened properly.
This function is only applicable on Windows systems.
shell.exec2(file)
A character
string specifying a file or an URL.
Returns nothing.
The intended usage of this function is to set it as the default
browser for browseURL
. Just add the following to
your .Rprofile
file:
if (.Platform$OS.type == "windows") options(browser=function(...) R.utils::shell.exec2(...))
This will only load (not attach) the R.utils package when the browser function is actual used.
Before passing a file on the file system to
shell.exec()
, this function:
(i) unmaps any mapped drive letters used in the pathname
(e.g. 'X:/foo.bar.html' to 'C:/Users/Joe/bar.html'),
(ii) and replaces any forward slashed with backward ones
(e.g. 'C:/Users/Joe/bar.html' to 'C:\Users\Joe\bar.html').
URLs are passed as is to shell.exec()
.
The reason for (i) is that some web browsers (e.g. Google Chrome)
will not open files on mapped drives.
The reason for (ii) is that if forward slashes are used, then
shell.exec()
will give an error that the file was
not found (at least with the default Windows shell).