KDB:如何将相对路径转换为绝对路径?

时间:2018-11-13 15:55:33

标签: format relative-path kdb absolute-path

在KDB中是否可以将相对路径转换为绝对路径?

例如:

filePath: `$concat[localPath,"\\",inProcessID,"\\",filename]

哪个返回:

`..\..\code\products\Q\ShortLocator2\Request Files\1\Locate_CCL_11-13-2018_074736.csv

然后我想将其转换为绝对路径。

3 个答案:

答案 0 :(得分:1)

最终,您应该首先解决为什么“ localPath”变量是相对变量的问题,但这是一个丑陋的函数来解决您的问题:

q){hsym `$("\\" sv neg[c]_"\\" vs system"cd"),"\\","\\" sv (c:count where ".."~/:a)_a:"\\" vs string x}[filePath]
`:C:\Users\code\products\Q\ShortLocator2\Request Files\1\Locate_CCL_11-13-201..

它特定于Windows

答案 1 :(得分:0)

您可以通过输入...获取当前工作目录。

q)homepath:`$system"pwd" // for Linux ,`/home/user q)homepath:`$system"cd" // for Windows ,`C:\\Users\\user

要获取绝对路径,请...

q).Q.dd[hsym homepath; filepath] `:/home/user/.. 这应该返回绝对路径。

这能回答您的问题吗?

答案 2 :(得分:0)

您是否需要文件的规范路径?如果您使用的是Linux,则readlink通常可用,可能会有所帮助:

system "readlink -f ", filepath

但是,这显然对Windows没有帮助(看起来您正在使用?)。我不知道类似的工具。