KDB: How to convert relative path to absolute path?












0















Is there a way to convert a relative path to an absolute path in KDB?



For example:



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


Which returns:



`....codeproductsQShortLocator2Request Files1Locate_CCL_11-13-2018_074736.csv


And then now I want to convert this to absolute path.










share|improve this question





























    0















    Is there a way to convert a relative path to an absolute path in KDB?



    For example:



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


    Which returns:



    `....codeproductsQShortLocator2Request Files1Locate_CCL_11-13-2018_074736.csv


    And then now I want to convert this to absolute path.










    share|improve this question



























      0












      0








      0








      Is there a way to convert a relative path to an absolute path in KDB?



      For example:



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


      Which returns:



      `....codeproductsQShortLocator2Request Files1Locate_CCL_11-13-2018_074736.csv


      And then now I want to convert this to absolute path.










      share|improve this question
















      Is there a way to convert a relative path to an absolute path in KDB?



      For example:



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


      Which returns:



      `....codeproductsQShortLocator2Request Files1Locate_CCL_11-13-2018_074736.csv


      And then now I want to convert this to absolute path.







      format relative-path kdb absolute-path






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 9 at 17:00









      Thomas Smyth

      3,98451731




      3,98451731










      asked Nov 13 '18 at 15:55









      Riley HunRiley Hun

      7801922




      7801922
























          3 Answers
          3






          active

          oldest

          votes


















          1














          Ultimately you should solve the problem of why your "localPath" variable is relative in the first place, but here is an ugly function to solve your problem:



          q){hsym `$("\" sv neg[c]_"\" vs system"cd"),"\","\" sv (c:count where ".."~/:a)_a:"\" vs string x}[filePath]
          `:C:UserscodeproductsQShortLocator2Request Files1Locate_CCL_11-13-201..


          It is specific to windows






          share|improve this answer































            0














            You can get the current working directory by typing...



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



            To get the absolute path do...



            q).Q.dd[hsym homepath; filepath]
            `:/home/user/..

            This should return the absolute path.



            Does that answer your question?






            share|improve this answer
























            • "cd" is trapped by kdb and should work identically across windows and Linux?

              – user20349
              Nov 13 '18 at 17:00











            • .Q.dd will not resolve the dots, it just concatenates

              – terrylynch
              Nov 13 '18 at 17:06



















            0














            Do you need the canonical path to the file? If you are on linux readlink is commonly available and may help:



            system "readlink -f ", filepath


            But this obviously doesn't help for Windows (which it looks like you are using?). I'm not aware of a similar tool.






            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284789%2fkdb-how-to-convert-relative-path-to-absolute-path%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              3 Answers
              3






              active

              oldest

              votes








              3 Answers
              3






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              1














              Ultimately you should solve the problem of why your "localPath" variable is relative in the first place, but here is an ugly function to solve your problem:



              q){hsym `$("\" sv neg[c]_"\" vs system"cd"),"\","\" sv (c:count where ".."~/:a)_a:"\" vs string x}[filePath]
              `:C:UserscodeproductsQShortLocator2Request Files1Locate_CCL_11-13-201..


              It is specific to windows






              share|improve this answer




























                1














                Ultimately you should solve the problem of why your "localPath" variable is relative in the first place, but here is an ugly function to solve your problem:



                q){hsym `$("\" sv neg[c]_"\" vs system"cd"),"\","\" sv (c:count where ".."~/:a)_a:"\" vs string x}[filePath]
                `:C:UserscodeproductsQShortLocator2Request Files1Locate_CCL_11-13-201..


                It is specific to windows






                share|improve this answer


























                  1












                  1








                  1







                  Ultimately you should solve the problem of why your "localPath" variable is relative in the first place, but here is an ugly function to solve your problem:



                  q){hsym `$("\" sv neg[c]_"\" vs system"cd"),"\","\" sv (c:count where ".."~/:a)_a:"\" vs string x}[filePath]
                  `:C:UserscodeproductsQShortLocator2Request Files1Locate_CCL_11-13-201..


                  It is specific to windows






                  share|improve this answer













                  Ultimately you should solve the problem of why your "localPath" variable is relative in the first place, but here is an ugly function to solve your problem:



                  q){hsym `$("\" sv neg[c]_"\" vs system"cd"),"\","\" sv (c:count where ".."~/:a)_a:"\" vs string x}[filePath]
                  `:C:UserscodeproductsQShortLocator2Request Files1Locate_CCL_11-13-201..


                  It is specific to windows







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 13 '18 at 17:02









                  terrylynchterrylynch

                  4,065517




                  4,065517

























                      0














                      You can get the current working directory by typing...



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



                      To get the absolute path do...



                      q).Q.dd[hsym homepath; filepath]
                      `:/home/user/..

                      This should return the absolute path.



                      Does that answer your question?






                      share|improve this answer
























                      • "cd" is trapped by kdb and should work identically across windows and Linux?

                        – user20349
                        Nov 13 '18 at 17:00











                      • .Q.dd will not resolve the dots, it just concatenates

                        – terrylynch
                        Nov 13 '18 at 17:06
















                      0














                      You can get the current working directory by typing...



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



                      To get the absolute path do...



                      q).Q.dd[hsym homepath; filepath]
                      `:/home/user/..

                      This should return the absolute path.



                      Does that answer your question?






                      share|improve this answer
























                      • "cd" is trapped by kdb and should work identically across windows and Linux?

                        – user20349
                        Nov 13 '18 at 17:00











                      • .Q.dd will not resolve the dots, it just concatenates

                        – terrylynch
                        Nov 13 '18 at 17:06














                      0












                      0








                      0







                      You can get the current working directory by typing...



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



                      To get the absolute path do...



                      q).Q.dd[hsym homepath; filepath]
                      `:/home/user/..

                      This should return the absolute path.



                      Does that answer your question?






                      share|improve this answer













                      You can get the current working directory by typing...



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



                      To get the absolute path do...



                      q).Q.dd[hsym homepath; filepath]
                      `:/home/user/..

                      This should return the absolute path.



                      Does that answer your question?







                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      answered Nov 13 '18 at 16:47









                      Raveena RaniRaveena Rani

                      1




                      1













                      • "cd" is trapped by kdb and should work identically across windows and Linux?

                        – user20349
                        Nov 13 '18 at 17:00











                      • .Q.dd will not resolve the dots, it just concatenates

                        – terrylynch
                        Nov 13 '18 at 17:06



















                      • "cd" is trapped by kdb and should work identically across windows and Linux?

                        – user20349
                        Nov 13 '18 at 17:00











                      • .Q.dd will not resolve the dots, it just concatenates

                        – terrylynch
                        Nov 13 '18 at 17:06

















                      "cd" is trapped by kdb and should work identically across windows and Linux?

                      – user20349
                      Nov 13 '18 at 17:00





                      "cd" is trapped by kdb and should work identically across windows and Linux?

                      – user20349
                      Nov 13 '18 at 17:00













                      .Q.dd will not resolve the dots, it just concatenates

                      – terrylynch
                      Nov 13 '18 at 17:06





                      .Q.dd will not resolve the dots, it just concatenates

                      – terrylynch
                      Nov 13 '18 at 17:06











                      0














                      Do you need the canonical path to the file? If you are on linux readlink is commonly available and may help:



                      system "readlink -f ", filepath


                      But this obviously doesn't help for Windows (which it looks like you are using?). I'm not aware of a similar tool.






                      share|improve this answer




























                        0














                        Do you need the canonical path to the file? If you are on linux readlink is commonly available and may help:



                        system "readlink -f ", filepath


                        But this obviously doesn't help for Windows (which it looks like you are using?). I'm not aware of a similar tool.






                        share|improve this answer


























                          0












                          0








                          0







                          Do you need the canonical path to the file? If you are on linux readlink is commonly available and may help:



                          system "readlink -f ", filepath


                          But this obviously doesn't help for Windows (which it looks like you are using?). I'm not aware of a similar tool.






                          share|improve this answer













                          Do you need the canonical path to the file? If you are on linux readlink is commonly available and may help:



                          system "readlink -f ", filepath


                          But this obviously doesn't help for Windows (which it looks like you are using?). I'm not aware of a similar tool.







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 13 '18 at 16:59









                          user20349user20349

                          1063




                          1063






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284789%2fkdb-how-to-convert-relative-path-to-absolute-path%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Bressuire

                              Vorschmack

                              Quarantine