【发布时间】:2014-01-17 17:35:04
【问题描述】:
我经常使用 ExtractRelativePath 来获取两条路径之间的相对路径。但我看不到任何与之相反的功能。这是来自 freepascal.org 的示例:
Uses sysutils;
Procedure Testit (FromDir,ToDir : String);
begin
Write ('From "',FromDir,'" to "',ToDir,'" via "');
Writeln (ExtractRelativePath(FromDir,ToDir),'"');
end;
Begin
Testit ('/pp/src/compiler','/pp/bin/win32/ppc386');
Testit ('/pp/bin/win32/ppc386','/pp/src/compiler');
Testit ('e:/pp/bin/win32/ppc386','d:/pp/src/compiler');
Testit ('e:\pp\bin\win32\ppc386','d:\pp\src\compiler');
End.
这个程序的输出
From "/pp/src/compiler" to "/pp/bin/win32/ppc386" via "../bin/win32/ppc386"
From "/pp/bin/win32/ppc386" to "/pp/src/compiler" via "../../src/compiler"
From "e:/pp/bin/win32/ppc386" to "d:/pp/src/compiler" via "../../src/compiler"
From "e:\pp\bin\win32\ppc386" to "d:\pp\src\compiler" via "../../src/compiler"
我需要一个函数F来执行ExtractRelativePath的反向动作,例如:
F('/pp/src/compiler', '../bin/win32/ppc386') return '/pp/bin/win32/ppc386'.
你知道这样的功能吗?提前谢谢你。
【问题讨论】:
-
@GolezTrol 这不是关于扩展,而是关于将完整与相对合并。
-
@DavidHeffernan : 对不起,这只是我的错误,我已将内容从 ../bin/win32/ppc386 编辑到 /pp/bin/win32/ppc386。
标签: freepascal lazarus