Rust中如何跨平台获取可执行扩展?

poo*_*lie 1 windows filenames path rust

我正在编写可移植的 Rust 代码来查找某些目录中的程序。在 Windows 上我预计它会是,foo.exe而在其他地方只是foo.

显然我可以使用if cfg!(windows),但这看起来很难看。

有没有更好的方法来查找平台的可执行文件扩展名?

poo*_*lie 5

是的,std::env::consts::EXE_SUFFIX.exe在 Windows 上运行,并且std::env::consts::EXE_EXTENSION将在exe. 在 Unix 上两者都是空的。

这些可以与基本名称组合,例如使用std::path::PathBuf::set_extension.