These functions ensure that path exists; if it already exists it will be left unchanged. That means that compared to file.create(), file_create() will not truncate an existing file, and compared to dir.create(), dir_create() will silently ignore existing directories.

file_create(path, ..., mode = "u=rw,go=r")

dir_create(path, ..., mode = "u=rwx,go=rx", recursive = TRUE)

link_create(path, new_path, symbolic = TRUE)



A character vector of one or more paths.


Additional arguments passed to path()


If file/directory is created, what mode should it have?

Links do not have mode; they inherit the mode of the file they link to.


should intermediate directories be created if they do not exist?


The path where the link should be created.


Boolean value determining if the link should be a symbolic (the default) or hard link.


The path to the created object (invisibly).


file_create("foo") is_file("foo")
#> foo #> TRUE
# dir_create applied to the same path will fail try(dir_create("foo")) dir_create("bar") is_dir("bar")
#> bar #> TRUE
# file_create applied to the same path will fail try(file_create("bar")) # Cleanup file_delete("foo") dir_delete("bar")