我如何在Rust中获得相对路径?
我想创建一个程序并将其编译为WASM。该程序在Windows和Unix上运行。
该程序从给定的base_path
生成了fileName
的相对路径,并将其转换为POSIX:
use pathdiff::diff_paths;
let relative_filename = diff_paths(filename, base_path).unwrap();
let path_parts = relative_filename.components().map(|component| component.as_os_str().to_str().unwrap()).collect::<Vec<&str>>();
let relative_posix_path = path_parts.join("/");
我认为这将使我能够为两个系统生成一致的相对路径,例如:
/// e.g. "/foo/", "/bar/baz.txt" -> "../bar/baz.txt"
/// e.g. "C:\foo\", "C:\foo\baz.txt" -> "../bar/baz.txt"
不幸的是,当汇编为WASM时,似乎不再能够解析Windows文件路径。
是否有跨平台处理Rust路径的方法?
I want to create a program and compile it to WASM. The program runs on Windows and Unix.
The program generates a relative path for a filename
from the given base_path
and converts it to posix:
use pathdiff::diff_paths;
let relative_filename = diff_paths(filename, base_path).unwrap();
let path_parts = relative_filename.components().map(|component| component.as_os_str().to_str().unwrap()).collect::<Vec<&str>>();
let relative_posix_path = path_parts.join("/");
I thought this would allow me to generate a consistent relative path for both systems for example:
/// e.g. "/foo/", "/bar/baz.txt" -> "../bar/baz.txt"
/// e.g. "C:\foo\", "C:\foo\baz.txt" -> "../bar/baz.txt"
Unfortunately when compiled to WASM it seems not to be able to parse Windows file paths anymore.
Is there a cross platform way to handle paths in rust?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论