Crate globwalker

source ·
Expand description


Fork of GlobWalk


Recursively find files in a directory using globs.

Based on both walkdir & ignore (❤), this crate inherits many goodies from both, such as limiting search depth and amount of open file descriptors.

Licensed under MIT.

Why not glob

  • The glob crate does not support having {a,b} in patterns.
  • globwalker can match several glob-patterns at the same time.
  • globwalker supports excluding results with !.
  • glob searches for files in the current working directory, whereas globwalker starts at a specified base-dir.


To use this crate, add globwalker as a dependency to your project’s Cargo.toml:

globwalker = "0.9.0"

The following piece of code recursively find all png, jpg, or gif files:

extern crate globwalker;

use std::fs;

for img in globwalker::glob("*.{png,jpg,gif}").unwrap() {
    if let Ok(img) = img {
        println!("{:?}", img);

See the documentation for more details. Recursively find files in a directory using globs.

Features include


Finding image files in the current directory.

extern crate globwalker;

use std::fs;

for img in globwalker::glob("*.{png,jpg,gif}")? {
    if let Ok(img) = img {

Advanced Globbing

By using one of the constructors of globwalker::GlobWalker, it is possible to alter the base-directory or add multiple patterns.

extern crate globwalker;

use std::fs;

let walker = globwalker::GlobWalkerBuilder::from_patterns(
        &["*.{png,jpg,gif}", "!Pictures/*"],

for img in walker {


  • Possible file type filters. Constants can be OR’d to filter for several types at a time.
  • Error from parsing globs.
  • An iterator which emits glob-matched patterns.
  • An iterator for recursively yielding glob matches.


  • Construct a new GlobWalker with a glob pattern.
  • Construct a new GlobWalkerBuilder with a glob pattern.

Type Aliases