#path #find #executable #path-buf #prelude #latex #string

bin+lib find-in-path

在文件夹内瞬间初始化一个 LaTeX 项目

1 个稳定版本

1.0.0 2023 年 10 月 11 日

#1539文件系统

GPL-3.0 许可证

17KB
127

查找 PATH 中的可执行文件

这是一个 Rust crate,旨在在用户的 PATH 中查找可执行文件。

快速入门

使用此 crate 非常简单。您只需执行 use find_in_path::prelude::*;use find_in_path::FindInPath;,即可在用户的 PATH 中查找 String&strPathBuf&Path

use find_in_path::prelude::*;
use std::path::PathBuf;
let s: String = "sysctl".to_string();
let s_in_path: Option<PathBuf> = s.find_in_path();
// The resultant path will be os and distribution specific
#[cfg(unix)]
assert_eq!(s_in_path, Some(PathBuf::from("/usr/sbin/sysctl")));

#[cfg(windows)]
assert_eq!(s_in_path, None);

非 Unicode 文件

find_in_path 将通过 OsString 和 &OsStr 方法支持非 Unicode 路径,但这将在未来的版本中实现。

安全性

默认情况下,FindInPath 会将搜索 PATH 中找到的相对目录延迟到末尾,因为这可能会导致运行不希望的执行文件。您可以通过设置 "skip_relative_directories" cargo 功能来阻止 FindInPath 完全检查相对目录。另外,如果找到的文件的路径是相对路径,返回的 PathBuf 将始终是相对的。

其他行为

默认情况下,此 crate 假设您正在查找可执行文件,这意味着它将跳过任何不是可执行文件的内容。

Windows

在 Windows 上,您可以激活非默认的 add_exe_ext cargo 功能,以便在文件名末尾自动添加 .exe(如果尚未添加)。此功能也不会在文件名以 .dll 结尾时追加 .exe

find_in_path = { version = "VERSION_NUMBER", features = ["add_exe_ext"] }

在 Unix 上设置此功能不会产生作用。

无运行时依赖