R/build_folders_from_file.R
build_folders_from_file.Rd
Create Folder Structure from Paths in File
build_folders_from_file(
file,
target_dir,
pattern = NULL,
max_depth = NULL,
encoding = "Latin-1"
)
path to file containing path strings
path to target directory in which to create the folder structure
regular expression matching the paths from file
to be
considered
maximum folder depth to be considered
encoding used when reading file
# Create a vector of example paths
paths <- c("a1/b1", "a1/b2", "a2/b1", "a2/b1/c1")
# Write the example paths to a temporary file
writeLines(paths, file <- tempfile())
# Create a temporary target directory
target_dir <- kwb.utils::createDirectory(file.path(tempdir(), "test"))
#> The directory "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/test" was created.
# Create the folder structure as defined by the paths in the temporary file
kwb.fakin::build_folders_from_file(file, target_dir)
#> Encodings guessed by readr:
#> [1] "ASCII"
#> Selected encoding: windows-1252
#> Reading paths from '/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/file7dc212068be' ... ok. (0.00s)
#> 4 lines have been read.
#> Splitting paths ... ok. (0.00s)
#> The directory "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/test" already exists.
#> The directory "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/test/a1" was created.
#> The directory "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/test/a1/b1" was created.
#> The directory "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/test/a1/b2" was created.
#> The directory "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/test/a2" was created.
#> The directory "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/test/a2/b1" was created.
#> The directory "/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T//RtmpRgElMU/test/a2/b1/c1" was created.
# List the directory paths below the target directory
paths_reread <- list.dirs(target_dir, recursive = TRUE, full.names = FALSE)
# Stop if not all paths have been created
stopifnot(all(paths %in% paths_reread))