Skip to content

Python's os.walk() implementation for Node.js environments with support for the `for await...of` loops.

License

Notifications You must be signed in to change notification settings

ncpa0cpl/node-os-walk

Repository files navigation

node-os-walk

Python's os.walk() implementation for Node.js environments with support for the for await...of loops.

It is recommended to use ECMA 2018 target or newer with the node-os-walk lib. for await...of loops are not supported in older versions.

Description

Generate the file names in a directory tree by walking the tree top-down. For each directory in the tree rooted at directory top (including top itself), it yields a 3-tuple: [dirpath: string, directories: Array<fs.Dirent>, files: Array<fs.Dirent>]

  • dirpath - is a string, the path to the directory.
  • directories - is a list of Dirent objects (from the standard fs Node library) pointing to all of directories found in the dirpath
  • files - is a list of Dirent objects (from the standard fs Node library) pointing to all of files but not directories found in the dirpath

Example

import { walk } from "node-os-walk";
import path from "path";

async function main() {
  const rootPath = path.resolve(__dirname, "./<your-path>");

  for await (const [root, dirs, files] of walk(rootPath)) {
    for (const directory of dirs) {
      console.log("Directory:", path.resolve(root, directory.name));
    }

    for (const file of files) {
      console.log("File:", path.resolve(root, file.name));
    }
  }
}

Options

  • followSymlinks - by default walk() will not list the contents of directories pointed to with symlinks, set this to true to change this behavior.

    walk(rootPath, { followSymlinks: true })

  • ignoreErrors - walk uses the fs.readdir() internally, if this option is set to true any errors thrown by fs.readdir() will be suppressed and an empty list of dirs and files will be returned.

    walk(rootPath, { ignoreErrors: true })

About

Python's os.walk() implementation for Node.js environments with support for the `for await...of` loops.

Topics

Resources

License

Stars

Watchers

Forks