Path D:移动到路径顶层的跨平台方式?
我得到了变量中的路径,如:Path D:移动到路径顶层的跨平台方式?,path,d,Path,D,我得到了变量中的路径,如: D:\foo\bar\baz\file.txt 也可以是: /foo/bar/baz/file.txt 我需要一种跨平台的方式,可以移动到bar目录 我只找到了一种方法,但它看起来像黑客: writeln(mystr.replaceLast(“baz”~dirSeparator~“file.txt”,”)出于某种原因,使用DMD2.068.2的dpaste对此不太满意。但这是正确的代码 import std.path; import std.stdio; void
D:\foo\bar\baz\file.txt
也可以是:
/foo/bar/baz/file.txt
我需要一种跨平台的方式,可以移动到bar
目录
我只找到了一种方法,但它看起来像黑客:
writeln(mystr.replaceLast(“baz”~dirSeparator~“file.txt”,”)代码>出于某种原因,使用DMD2.068.2的dpaste对此不太满意。但这是正确的代码
import std.path;
import std.stdio;
void main() {
version(Posix) {
writeln(buildNormalizedPath("/a/b/c", "../d"));
} else version(Windows) {
writeln(buildNormalizedPath("c:\\\\a\\b\\c", "..\\d"));
}
}
具有两个功能:和
它们之间唯一的区别是asNormalizedPath
不会分配内存。谢谢!看起来像stringpath2=buildNormalizedPath(path1,`..\`)代码>为我工作。