9 unstable releases (4 breaking)

Uses new Rust 2024

0.5.0 Aug 22, 2025
0.4.3 May 28, 2025
0.4.1 Mar 12, 2025
0.4.0 Feb 22, 2025
0.1.1 Sep 26, 2024

#804 in Filesystem

Download history 6481/week @ 2025-11-03 4812/week @ 2025-11-10 7687/week @ 2025-11-17 7225/week @ 2025-11-24 2610/week @ 2025-12-01 2154/week @ 2025-12-08 4439/week @ 2025-12-15 1289/week @ 2025-12-22 688/week @ 2025-12-29 2906/week @ 2026-01-05 3921/week @ 2026-01-12 9200/week @ 2026-01-19 11998/week @ 2026-01-26 13660/week @ 2026-02-02 15077/week @ 2026-02-09 14138/week @ 2026-02-16

55,047 downloads per month
Used in workspace_root

MIT license

24KB
390 lines

Get Dir

A utility to get directory.

This utility searches for a target directory by checking for any directories or files that match the provided input.

Usage

Get directory by target with the following code:

use std::path::PathBuf;

use get_dir::{
    GetDir,
    Target,
    DirTarget,
};

let path: PathBuf = GetDir::new()
    .target(
        Target::Dir(DirTarget::new("src")),
    )
    .run()
    .unwrap();

Or get directory by target in reverse with the following code:

use std::path::PathBuf;

use get_dir::{
    GetDir,
    Target,
    FileTarget,
};

let path: PathBuf = GetDir::new()
    .target(
        Target::File(FileTarget::new("LICENSE")),
    )
    .run_reverse()
    .unwrap();

Async version also available with async_std, smol and tokio features:

use std::path::PathBuf;

use get_dir::{
    GetDir,
    Target,
    DirTarget,
    // async_std
    async_std::GetDirAsyncExt,
    // smol
    smol::GetDirAsyncExt,
    // tokio
    tokio::GetDirAsyncExt,
};

let path: PathBuf = GetDir::new()
    .target(
        Target::Dir(DirTarget::new("src")),
    )
    .run_async()
    .await
    .unwrap();

See also

For resolving the root of a workspace, consider using the workspace_root library.

License

This project is licensed under the terms of the MIT license.

Dependencies

~0–5MB
~112K SLoC