addDirectoryToTarEntry static method

void addDirectoryToTarEntry(
  1. Directory directory,
  2. String basePath,
  3. StreamController<TarEntry> controller,
  4. StringBuffer? logBuffer, {
  5. bool recursive = true,
})

Adds all files from a directory to the tar archive controller.

This method recursively adds all files from the specified directory to the archive. It can be called externally for dynamic archive building.

Parameters:

  • directory: The directory to add to the archive.
  • basePath: The base path for computing relative paths.
  • controller: The tar entry stream controller.
  • logBuffer: Optional buffer for logging.
  • recursive: If true (default), recursively adds files from subdirectories.

Implementation

static void addDirectoryToTarEntry(
  Directory directory,
  String basePath,
  StreamController<TarEntry> controller,
  StringBuffer? logBuffer, {
  bool recursive = true,
}) {
  try {
    final files =
        directory.listSync(recursive: recursive, followLinks: false);
    for (final file in files) {
      if (file is File) {
        addFileToTarEntry(file, basePath, controller, logBuffer);
      }
    }
  } catch (e) {
    logBuffer?.writeln('Error scanning directory ${directory.path}: $e');
  }
}