You can use wslpath2
to convert a WSL Path to a Windows Path and vice versa.
Internally it calls the wslpath
utility, which is a Linux-based utility created by Microsoft to convert Windows and Linux paths. This is called through the WSL command, so that it works on Linux (from within the WSL) as well on Windows.
This is a fork of wslpath by pratikpc with the following changes:
- Uses Rust 2021 edition
- Adds settings enum to closely map to
wslpath.exe
's command line arguments - Updated to the newest version of
wslpath.exe
- Error handling is improved
The main function is convert
which has the following signature:
pub fn convert(
path: &str,
distro: Option<&str>,
options: Conversion,
force_absolute_path: bool,
) -> Result<String, Box<dyn std::error::Error>>
Usage example:
// Convert WSL path to Windows
let path = convert("/mnt/c/Users", None, Conversion::WslToWindows, false).unwrap();
println!("WSL Path converted to Windows is {}", path);
// OUTPUT is WSL Path converted to Windows is C:\Users
// Convert Windows path to WSL
let path = convert("C:\\Users", None, Conversion::WindowsToWsl, false).unwrap();
println!("Windows Path converted to WSL is {}", path);
// OUTPUT is Windows Path converted to WSL is /mnt/c/Users
Also, see the examples folder for more examples.