dbc_batch_to_csv: Convert all DBC files in a directory to CSV files

View source: R/dbcturbo.R

dbc_batch_to_csvR Documentation

Convert all DBC files in a directory to CSV files

Description

Finds DBC files in a directory and converts each one with dbc_to_csv. When recursive = TRUE, the relative directory layout beneath input_dir is preserved in output_dir. Existing output files are never replaced unless overwrite = TRUE.

Usage

dbc_batch_to_csv(
  input_dir,
  output_dir,
  pattern = "\\.dbc$",
  recursive = FALSE,
  batch_size = 4096L,
  encoding = NULL,
  cols = NULL,
  overwrite = FALSE,
  verbose = FALSE,
  workers = 1L
)

Arguments

input_dir

Character string. Directory containing DBC files.

output_dir

Character string. Destination directory for CSV files. Created when it does not exist.

pattern

Regular expression used to select input files. Defaults to "\\.dbc$", case-insensitively.

recursive

Logical. Search subdirectories? Default FALSE.

batch_size

Integer. Number of records per CSV write batch. Passed to dbc_to_csv.

encoding

Character string or NULL. Passed to dbc_to_csv.

cols

Character vector or NULL. Optional fields to write for every input file. Passed to dbc_to_csv.

overwrite

Logical. Replace existing CSV files? Default FALSE.

verbose

Logical. Print per-file conversion progress? Default FALSE.

workers

Positive integer. Number of files to convert concurrently on macOS and Linux. Defaults to 1L. Windows uses sequential execution because parallel::mclapply() is not available there.

Value

A data frame with one row per converted file and columns input_file and output_file. For an empty input directory, returns a zero-row data frame with those columns.

Examples

input_dir <- tempfile("dbc-input-")
output_dir <- tempfile("dbc-output-")
dir.create(input_dir)
file.copy(system.file("extdata", "sids.dbc", package = "dbcturbo"),
          file.path(input_dir, "sids.dbc"))
result <- dbc_batch_to_csv(input_dir, output_dir)
result
unlink(c(input_dir, output_dir), recursive = TRUE)

dbcturbo documentation built on Oct. 10, 2026, 5:08 p.m.