This function takes care of extracting basic information about iso_files, dealing with problems and making sure only valid fire formats are processed. This function is not typicaly called directly but indirectly by calling iso_read_dual_inlet, iso_read_continuous_flow and iso_read_scan. It is made available outside the package because it can be very useful for testing new file readers.

iso_read_files(paths, root, supported_extensions, data_structure,
  read_options = c(), reader_options = list(),
  discard_duplicates = TRUE, parallel = FALSE,
  parallel_plan = future::multiprocess, cache = default(cache),
  cache_files_with_errors = TRUE, read_cache = default(cache),
  quiet = default(quiet))



one or multiple file/folder paths. All files must have a supported file extension. All folders are expanded and searched for files with supported file extensions (which are then included in the read). Paths can be absolute paths or relative to the provided file root (which is the current working directory by default). For absolute paths, a common root directory will be guessed using iso_find_absolute_path_roots. The root portion of paths will never be displayed in info messages.


root for relative paths. Can be relative to the current working directory (e.g. "data") or an absolute path on the file system (e.g. "/Users/..." or "C:/Data/.."). The default is the current working directory ("."). Can be supplied as a vector of same length as the provided paths if the paths have different roots.


data frame with supported extensions and corresponding reader functions (columns 'extension', 'func', 'cacheable')


the basic data structure for the type of iso_file


vector of read options to be stored in the data structure (e.g. c(read_vendor_data_table = FALSE)). The read_ prefix is optional.


list of paramters to be passed on to the reader


whether to automatically discard files with duplicate file IDs (i.e. duplicate file names). If TRUE (the default), only the first files are kept and any files with the same file ID are discarded. If FALSE, all duplicate files are kept but their file IDs are appended with suffix #1, #2, etc.


whether to process in parallel based on the number of available CPU cores. This may yield performance increases for files that are slow to parse such as continuous flow isodat files but usually provides little benefit for efficient data formats such as reading from R Data Archives.


which parallel processing strategy to use, see plan, typically future::multiprocess (the default, uses multicore if supported by the operating system, otherwise multisession), future::multisession or future::multicore.


whether to cache iso_files. Note that previously exported R Data Archives (di.rda, cf.rda) are never cached since they are already essentially in cached form.


whether to cache files that had errors during reading


whether to reload from cache if a cached version exists. Note that it will only read from cache if the file was previously read with the exact same isoreader version and read options and has not been modified since.


whether to display (quiet=FALSE) or silence (quiet = TRUE) information messages. Set parameter to overwrite global defaults for this function or set global defaults with calls to iso_turn_info_message_on and iso_turn_info_message_off


single iso_file object (if single file) or list of iso_files (iso_file_list)