Skip to contents

vsi_read_dir() abstracts access to directory contents. It returns a character vector containing the names of files and directories in this directory. With recursive = TRUE, reads the list of entries in the directory and subdirectories. This function is a wrapper for VSIReadDirEx() and VSIReadDirRecursive() in the GDAL Common Portability Library.

Usage

vsi_read_dir(path, max_files = 0L, recursive = FALSE)

Arguments

path

Character string. The relative or absolute path of a directory to read.

max_files

Integer scalar. The maximum number of files after which to stop, or 0 for no limit (see Note). Ignored if recursive = TRUE.

recursive

Logical scalar. TRUE to read the directory and its subdirectories. Defaults to FALSE.

Value

A character vector containing the names of files and directories in the directory given by path. An empty string ("") is returned if path does not exist.

Note

If max_files is set to a positive number, directory listing will stop after that limit has been reached. Note that to indicate truncation, at least one element more than the max_files limit will be returned. If the length of the returned character vector is lesser or equal to max_files, then no truncation occurred. The max_files parameter is ignored when recursive = TRUE.

Examples

# regular file system for illustration
data_dir <- system.file("extdata", package="gdalraster")
vsi_read_dir(data_dir)
#>  [1] "sr_b6_20200829.tif"       "metadata.zip"            
#>  [3] "test.geojson"             ".."                      
#>  [5] "storml_evc.tif"           "int64.tif"               
#>  [7] "storm_lake.lcp"           "."                       
#>  [9] "LF20_EVH_220.csv"         "storm_lake.prj"          
#> [11] "LF20_EVC_220.csv"         "ynp_fires_1984_2022.gpkg"
#> [13] "LF20_F40_220.csv"         "storml_evt.tif"          
#> [15] "storml_pts.csv"           "sr_b4_20200829.tif"      
#> [17] "storml_elev.tif"          "storml_tcc.tif"          
#> [19] "sr_b5_20200829.tif"       "storml_evh.tif"          
#> [21] "LF20_EVT_220.csv"