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

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

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

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

是的,在Windows上, std::env::consts::EXE_SUFFIX将是.exe ,而std::env::consts::EXE_EXTENSION将会是exe 。 Unix上都是空的。

这些可以使用例如std::path::PathBuf::set_extension与基本名称相结合。