在KDB中是否可以将相对路径转换为绝对路径?
例如:
filePath: `$concat[localPath,"\\",inProcessID,"\\",filename]
哪个返回:
`..\..\code\products\Q\ShortLocator2\Request Files\1\Locate_CCL_11-13-2018_074736.csv
然后我想将其转换为绝对路径。
答案 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没有帮助(看起来您正在使用?)。我不知道类似的工具。