Skip to content

Releases: r-lib/fs

v1.5.2

09 Dec 08:39

Choose a tag to compare

  • file_create() and dir_create() now return the correct path when ... arguments are used (@davidchall, #333).

  • dir_create(recurse = FALSE) now correctly handles ... arguments (@davidchall, #333).

  • file_exists() now expands ~ again (#325).

  • dir_copy() works when path has length >1 (#360).

fs 1.5.1

30 Nov 14:18

Choose a tag to compare

  • 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).

fs 1.5.0

03 Aug 10:58

Choose a tag to compare

  • 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 mkdir does (#284).

  • fs_path, fs_bytes and fs_perms objects are now compatible with vctrs 0.3.0 (#266)

  • fs_path objects now sort properly when there is a mix of ASCII and unicode elements (#279)

fs 1.4.2

27 Jul 16:15

Choose a tag to compare

  • file_info(..., follow = TRUE), is_dir(), and 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 data.frame (#265)

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

fs 1.4.1

07 Apr 14:27

Choose a tag to compare

  • Fix compilation on Solaris.

fs 1.3.2

05 Mar 18:41

Choose a tag to compare

  • fs now passes along CPPFLAGS during 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)

  • get_dirent_type() gains a fail argument (@bellma-lilly, #219)

  • is_dir(), is_file(), is_file_empty() and file_info() gain a follow argument, 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_MAX (#233).

  • path_ext_set() now works with multiple paths (@maurolepore, #208).

fs 1.3.1

19 Aug 14:33

Choose a tag to compare

  • Fix missed test with UTF-8 characters, which now passes on a strict Latin-1 locale.

  • Fix undefined behavior when casting -1 to size_t.

  • dir_create() now works with absolute paths and recurse = FALSE (#204).

fs 1.3.0

03 May 18:30

Choose a tag to compare

Breaking changes

  • dir_ls(), dir_map(), dir_walk(), dir_info() and dir_tree() gain a
    recurse argument, which can be either a TRUE or FALSE (as was supported
    previously) or a number of levels to recurse. The previous argument
    recursive has been deprecated.

New features

  • dir_copy() gains a overwrite argument, 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_path objects now always show 10 characters by default when printed in
    tibbles (#191).

  • path_file(), path_dir() and 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

fs 1.2.7

20 Mar 18:49

Choose a tag to compare

New features

  • file_size() function added as a helper for file_info("file")$size (#171)

  • 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 tree program (#82).

  • Add a comparision vignette to quickly compare base R, fs and shell
    alterantives (@xvrdm, #168).

Minor improvements and fixes

  • path_ext_set() and 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(), path_ext_remove(), and 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_id parameter as character (@cderv, #162).

  • Parameter browser in 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_COLORS is malformed (#135).

fs v1.2.6

23 Aug 19:33

Choose a tag to compare

  • 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, r-lib/usethis#438).

  • Fix for a double free when using warn = TRUE (#132)