1 个不稳定版本

0.2.0 2020年4月11日

#564文件系统

Download history 5618/week @ 2024-03-14 5432/week @ 2024-03-21 4894/week @ 2024-03-28 5439/week @ 2024-04-04 5289/week @ 2024-04-11 5493/week @ 2024-04-18 6310/week @ 2024-04-25 5673/week @ 2024-05-02 6110/week @ 2024-05-09 8602/week @ 2024-05-16 6857/week @ 2024-05-23 7605/week @ 2024-05-30 6496/week @ 2024-06-06 6424/week @ 2024-06-13 6937/week @ 2024-06-20 5388/week @ 2024-06-27

27,259 每月下载量
27 个 Crates 中使用 (8 直接)

MIT 许可证

12KB
146

pathsearch

这个 crate 提供了可用于在 POSIX 和 Windows 系统上根据 PATH 环境搜索可执行文件的功能。

find_executable_in_path 是这个 crate 导出的最方便的函数;给定一个可执行文件名,它将产生第一个匹配文件的绝对路径。

use pathsearch::find_executable_in_path;

if let Some(exe) = find_executable_in_path("ls") {
  println!("Found ls at {}", exe.display());
}

PathSearcher 是一个平台无关的结构体,它包含了 find_executable_in_path 使用的路径搜索算法。通过传递 PATH 和 PATHEXT (对于 Windows) 环境变量来构建它,并通过迭代它来逐步产生所有候选结果。这在实现如 which 这样的工具时非常有用,这些工具想要显示所有可能的路径。

use pathsearch::PathSearcher;
use std::ffi::OsString;

let path = std::env::var_os("PATH");
let path_ext = std::env::var_os("PATHEXT");

for exe in PathSearcher::new(
    "zsh",
    path.as_ref().map(OsString::as_os_str),
    path_ext.as_ref().map(OsString::as_os_str),
) {
    println!("{}", exe.display());
}

SimplePathSearcher 是一个简单的迭代器,可以用来搜索任意路径中的任意文件,该文件不需要是可执行的。

许可证: MIT

依赖项

~175KB