Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. How to find the path of my current running application

How to find the path of my current running application

Scheduled Pinned Locked Moved C / C++ / MFC
tutorialjsonhelpquestion
16 Posts 7 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C chandu004

    hai friends, my problem is like this. in my program, (say for example) i will allow the user to select a file, any where in the computer. now after file selection, i have to create one file in the folder, where my program is available. i donot give any path while creation. i will simply use open(file1,write). but this file is created, in the folder, where the selected file is available. is there any api, which can fetch me the path of the current working folder, such that, i can save my folder there? thanks for your views.

    J Offline
    J Offline
    Jonathan Darka
    wrote on last edited by
    #3

    Try GetCurrentDirectory()


    Jonathan Wilkes Darka[Xanya.net]

    C 1 Reply Last reply
    0
    • J Jonathan Darka

      Try GetCurrentDirectory()


      Jonathan Wilkes Darka[Xanya.net]

      C Offline
      C Offline
      chandu004
      wrote on last edited by
      #4

      thanks for your response. GetCurrentDirectory() gave me some clue, to achieve my goal. but it still fetches me the previous selected file's directory. how ever with GetCurrentDirectory() , in the initdialog, i can find the folder of the application and preserve it and use it though user changes the current folder. but instead of that, if i get it directly, it would be better. did you get my point or do i have to explain better?

      J 1 Reply Last reply
      0
      • H Hamid Taebi

        Im not sure do you need to GetModuleFileName?

        C Offline
        C Offline
        chandu004
        wrote on last edited by
        #5

        vov, hamid, i tried it. it gave me the filename which iam running, like, d:\myapp\debug\myapp.exe. this will do for me. what all i want from this string is upto debug. may be i can do some parsing logic here to remove the myapp.exe. i would be pleased if you can suggest that for me. got my 5? thank you.

        R H R 3 Replies Last reply
        0
        • C chandu004

          thanks for your response. GetCurrentDirectory() gave me some clue, to achieve my goal. but it still fetches me the previous selected file's directory. how ever with GetCurrentDirectory() , in the initdialog, i can find the folder of the application and preserve it and use it though user changes the current folder. but instead of that, if i get it directly, it would be better. did you get my point or do i have to explain better?

          J Offline
          J Offline
          Jonathan Darka
          wrote on last edited by
          #6

          Here you go, this should do what you want.

          TCHAR szBuffer[_MAX_PATH] = {'\0'};
          DWORD dwLen = _MAX_PATH;

          GetModuleFileName(GetModuleHandle(NULL), szBuffer, dwLen);


          Jonathan Wilkes Darka[Xanya.net]

          C 1 Reply Last reply
          0
          • C chandu004

            vov, hamid, i tried it. it gave me the filename which iam running, like, d:\myapp\debug\myapp.exe. this will do for me. what all i want from this string is upto debug. may be i can do some parsing logic here to remove the myapp.exe. i would be pleased if you can suggest that for me. got my 5? thank you.

            R Offline
            R Offline
            Rajesh R Subramanian
            wrote on last edited by
            #7

            See PathRemoveFileSpec()

            Real men drive manual transmission.

            1 Reply Last reply
            0
            • C chandu004

              vov, hamid, i tried it. it gave me the filename which iam running, like, d:\myapp\debug\myapp.exe. this will do for me. what all i want from this string is upto debug. may be i can do some parsing logic here to remove the myapp.exe. i would be pleased if you can suggest that for me. got my 5? thank you.

              H Offline
              H Offline
              Hamid Taebi
              wrote on last edited by
              #8

              Yeah you can use of CString::Left for get full string of some strings of left. (one thing that it doesnt relative to your answer see my thread on the lonuge I saw a good site with nice wallpaper of milky way )

              C 1 Reply Last reply
              0
              • C chandu004

                vov, hamid, i tried it. it gave me the filename which iam running, like, d:\myapp\debug\myapp.exe. this will do for me. what all i want from this string is upto debug. may be i can do some parsing logic here to remove the myapp.exe. i would be pleased if you can suggest that for me. got my 5? thank you.

                R Offline
                R Offline
                Roger Stoltz
                wrote on last edited by
                #9

                _splitpath[^] in the CRT lib.


                "It's supposed to be hard, otherwise anybody could do it!" - selfquote
                "High speed never compensates for wrong direction!" - unknown

                C 1 Reply Last reply
                0
                • H Hamid Taebi

                  Yeah you can use of CString::Left for get full string of some strings of left. (one thing that it doesnt relative to your answer see my thread on the lonuge I saw a good site with nice wallpaper of milky way )

                  C Offline
                  C Offline
                  chandu004
                  wrote on last edited by
                  #10

                  nice of ur wallpapers. why don't you attempt for my algorithm in corresponding forum.

                  H 1 Reply Last reply
                  0
                  • C chandu004

                    nice of ur wallpapers. why don't you attempt for my algorithm in corresponding forum.

                    H Offline
                    H Offline
                    Hamid Taebi
                    wrote on last edited by
                    #11

                    Im sorry but I dont understand what you said?

                    C 1 Reply Last reply
                    0
                    • J Jonathan Darka

                      Here you go, this should do what you want.

                      TCHAR szBuffer[_MAX_PATH] = {'\0'};
                      DWORD dwLen = _MAX_PATH;

                      GetModuleFileName(GetModuleHandle(NULL), szBuffer, dwLen);


                      Jonathan Wilkes Darka[Xanya.net]

                      C Offline
                      C Offline
                      chandu004
                      wrote on last edited by
                      #12

                      no boss i'm still getting the recent selected file's folder by the user. thanks for your concern.

                      T 1 Reply Last reply
                      0
                      • H Hamid Taebi

                        Im sorry but I dont understand what you said?

                        C Offline
                        C Offline
                        chandu004
                        wrote on last edited by
                        #13

                        i mean please go to algorithms forum and try to attempt my post. thanku

                        1 Reply Last reply
                        0
                        • R Roger Stoltz

                          _splitpath[^] in the CRT lib.


                          "It's supposed to be hard, otherwise anybody could do it!" - selfquote
                          "High speed never compensates for wrong direction!" - unknown

                          C Offline
                          C Offline
                          chandu004
                          wrote on last edited by
                          #14

                          thanks for your reply roger. i shall definitely look into it if all my other choices disappoint me.

                          1 Reply Last reply
                          0
                          • C chandu004

                            no boss i'm still getting the recent selected file's folder by the user. thanks for your concern.

                            T Offline
                            T Offline
                            ThatsAlok
                            wrote on last edited by
                            #15

                            is you application is executable or dll!

                            "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
                            Never mind - my own stupidity is the source of every "problem" - Mixture

                            cheers, Alok Gupta VC Forum Q&A :- I/IV Support CRY- Child Relief and You

                            1 Reply Last reply
                            0
                            • C chandu004

                              hai friends, my problem is like this. in my program, (say for example) i will allow the user to select a file, any where in the computer. now after file selection, i have to create one file in the folder, where my program is available. i donot give any path while creation. i will simply use open(file1,write). but this file is created, in the folder, where the selected file is available. is there any api, which can fetch me the path of the current working folder, such that, i can save my folder there? thanks for your views.

                              N Offline
                              N Offline
                              Nelek
                              wrote on last edited by
                              #16

                              Try with...

                              CString m_szNewFileName = "";
                              char FileName[MAX_PATH];
                              GetModuleFileName(NULL, FileName, MAX_PATH);
                              m_szNewFileName = FileName;
                              m_szNewFileName = m_szNewFileName.Left(m_szNewFileName.ReverseFind('\\'));
                              m_szNewFileName += "DesiredNewName.ext"

                              CFile f (m_szNewFileName, CFile::modeCreate | CFile::modeWrite);

                              it worked good for me. This would create the new file in the forlder where the App.exe is. And afterwards you can delete the file with:

                              if (f.Open (m_szNewFileName, CFile::modeRead))
                              { f.Close ();
                              f.Remove (m_szNewFileName);
                              }

                              EDIT: Nice, my post is the newest one, but has the answers of the post just above (older than mine):doh: :P -- modified at 5:21 Monday 29th October, 2007 -- modified at 5:22 Monday 29th October, 2007

                              Greetings. -------- M.D.V. If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you ;)

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups