fs (development version)
path_ext_set()can now handle extensions that contain a
CRAN release: 2023-01-23
path_join()are coerced to character for consistency with other functions (@raymondben, #370)
fs uses libuv 1.44.2 now.
CRAN release: 2021-12-08
dir_create()now return the correct path when
...arguments are used (@davidchall, #333).
dir_create(recurse = FALSE)now correctly handles
...arguments (@davidchall, #333).
pathhas length >1 (#360).
CRAN release: 2021-11-30
Gábor Csárdi is now the maintainer.
fs is now licensed as MIT (#301).
dir_create()now restores the previous umask (#293)
file_exists()is now much faster (#295)
options(fs.fs_path.shorten)can now be used to control how paths are shortened in tibbles. The default value is “front”, valid alternatives are “back”, “middle” and “abbreviate”. (#335)
options(fs.use_tibble = FALSE)can now be used to disable use of tibbles (#295).
path_tidy()now works with non-UTF8 encoded paths (@shrektan, #321).
CRAN release: 2020-07-31
The libuv release used by fs was updated to 1.38.1
dir_create()now consults the process umask so the mode during directory creation works like
fs_permsobjects are now compatible with vctrs 0.3.0 (#266)
fs_pathobjects now sort properly when there is a mix of ASCII and unicode elements (#279)
CRAN release: 2020-06-30
file_info(..., follow = TRUE),
is_file()follow relative symlinks in non-current directories (@heavywatal, #280)
dir_map()now grows its internal list safely, the 1.4.0 release introduced an unsafe regression (#268)
file_info()returns a tibble if the tibble package is installed, and subsets work when it is a
path_real()always fails if the file does not exist. Thus it can no longer be used to resolve symlinks further up the path hierarchy for files that do not yet exist. This reverts the feature introduced in 1.2.7 (#144, #221, #231)
CRAN release: 2020-03-31
[[.fs_permsnow preserve their classes after subsetting (#254).
path_has_parent()now recycles both the
path_ext_set()now recycles both the
Internally fs no longer depends on Rcpp
CRAN release: 2020-03-05
fs now passes along
CPPFLAGSduring compilation of libuv, fixing an issue that could prevent compilation from source on macOS Catalina. (@kevinushey, #229)
fs now compiles on alpine linux (#210)
dir_create()now works with absolute paths and
recurse = FALSE(#204).
dir_tree()now works with paths that need tilde expansion (@dmurdoch, @jennybc, #203).
file_info()now returns file sizes with the proper classes (“fs_bytes” and “numeric”), rather than just “fs_bytes” (#239)
failargument (@bellma-lilly, #219)
followargument, to follow links and return information about the linked file rather than the link itself (#198)
path()now follows “tidy” recycling rules, namely only consistent or length 1 inputs are recycled. (#238)
path()now errors if the path given or constructed will exceed
path_ext_set()now works with multiple paths (@maurolepore, #208).
CRAN release: 2019-05-06
Fix missed test with UTF-8 characters, which now passes on a strict Latin-1 locale.
Fix undefined behavior when casting -1 to
CRAN release: 2019-05-02
recurseargument, which can be either a
FALSE(as was supported previously) or a number of levels to recurse. The previous argument
recursivehas been deprecated.
overwriteargument, to overwrite a given directory (@pasipasi123, #193)
Minor improvements and fixes
dir_create()now throws a more accurate error message when you try to create a directory in a non-writeable location (#196).
fs_pathobjects now always show 10 characters by default when printed in tibbles (#191).
path_ext()now return normal character vectors rather than tidy paths (#194).
path_package()now works with paths in development packages automatically (#175).
tests now pass successfully when run in strict Latin-1 locale
CRAN release: 2019-03-19
file_size()function added as a helper for
is_file_empty()function added to test for empty files` (#171)
dir_tree()function added to print a command line representation of a directory tree, analogous to the unix
Add a comparison vignette to quickly compare base R, fs and shell alternatives (@xvrdm, #168).
Minor improvements and fixes
file_temp()now treat extensions with a leading
.and those without equally. e.g.
path_ext_set("foo", ext = "bar")and
path_ext_set("foo", ext = ".bar")both result in “foo.bar”
Tidy paths are now always returned with uppercase drive letters on Windows (#174).
format.bench_bytes()now works with
str()in R 3.5.1+ (#155).
path_ext_set()now work on paths with no extension, and
file_temp()now prepends a
.to the file extension (#153).
Link with -pthread by default and fix on BSD systems (#128, #145, #146).
file_chown()can now take a
group_idparameter as character (@cderv, #162).
file_show()now works as described in the documentation (@GegznaV, #154).
path_real()now works even if the file does not exist, but there are symlinks further up the path hierarchy (#144).
colourise_fs_path()now returns paths uncolored if the colors argument /
LS_COLORSis malformed (#135).
CRAN release: 2018-08-23
This is a small bugfix only release.
file_move()now fall back to copying, then removing files when moving files between devices (which would otherwise fail) (#131, https://github.com/r-lib/usethis/issues/438).
Fix for a double free when using
warn = TRUE(#132)
CRAN release: 2018-07-30
- Patch release to fix tests which left files in the R session directory
CRAN release: 2018-07-26
path_wd()generates paths from the current working directory (#122).
path_has_parent()determines if a path has a given parent (#116).
file_touch()used to change access and modification times for a file (#98).
failparameter, to signal warnings rather than errors if they are called on a path which is unavailable due to permissions or locked resources (#105).
Minor improvements and fixes
path_tidy()now always includes a trailing slash for the windows root directory, e.g.
path_ext_remove()now handle paths with non-ASCII characters (#120).
fs_pathobjects now print (without colors) even if the user does not have permission to stat them (#121).
compatibility with upcoming gcc 8 based Windows toolchain (#119)
CRAN release: 2018-06-08
Experimental support for
..., which is passed to
path()to make construction a little nicer (#80).
path_ext_remove()now handle paths with directories including hidden files without extensions (#92).
file_copy()now copies files into the directory if the target is a directory (#102).
CRAN release: 2018-03-21
- fs no longer needs a C++11 compiler, it now works with compilers which support only C++03 (#90).
fs_permobjects now use
methods::setOldClass()so that S4 dispatch to their base classes works as intended (#91).
Fix allocation bug in
delete when we should have used
CRAN release: 2018-03-20
startargument, to specify where the absolute path should be calculated from (#87).
character()if given 0 length inputs (#89)
Fix for a memory issue reported by ASAN and valgrind.
CRAN release: 2018-03-13
HOMEPATHas the user home directory on Windows. This differs from the definition used in
path.expand()but is consistent with definitions from other programming environments such as python and rust. This is also more compatible with external tools such as git and ssh, both of which put user-level files in
USERPROFILEby default. To mimic R’s (and previous) behavior there are functions
Handling missing values are more consistent. In general
is_*functions always return
FALSEfor missing values,
path_*functions always propagate NA values (NA inputs become NA outputs) and
link_*functions error with NA inputs.
fs functions now preserve tildes in their outputs. Previously paths were always returned with tildes expanded. Users can use
path_expand()to expand tildes if desired.
- Fix crash when a files user or group id did not exist in the respective database (#84, #58)
- Fix home expansion on systems without readline (#60).
- Fix propagation of NA values in
file_chmod()is now vectorized over both of its arguments (#71).
link_create()now fails silently if an identical link already exists (#77).
path_package()function created as an analog to
system.file()which always fails if the package or file does not exist (#75)
CRAN release: 2018-01-26
dir_delete()now correctly expands paths (#47).
dir_delete()now correctly deletes hidden files and directories (#46).
link_path()now checks for an error before trying to make a string, avoiding a crash (#43).
libuv return paths now marked as UTF-8 strings in C code, fixing encoding issues on windows. (#42)
dir_copy()now copies the directory inside the target if the target is a directory (#51).
dir_copy()now works correctly with absolute paths and no longer removes files when
overwrite = TRUE.