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. Creating Sub folder

Creating Sub folder

Scheduled Pinned Locked Moved C / C++ / MFC
help
22 Posts 4 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.
  • S Suresh H

    Hello all, I want to check for some folder c:\\a\\b and create if that folders does not exits. Till now I have done with checking and creating the c:\\a Can anyone help me hw to create the sub folder along with the main folder. I am using below code.

    = "C:\\A”; ret = PathFileExists(buf); if(ret == 0) { CreateDirectory(buf,NULL); }
    if I give
    = “C:\\A\\B\\”;
    this code has no effect .

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

    What exactly is that you are not able to do? Weren't you answered[^] for this question already?


    Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

    S 1 Reply Last reply
    0
    • S Suresh H

      Hello all, I want to check for some folder c:\\a\\b and create if that folders does not exits. Till now I have done with checking and creating the c:\\a Can anyone help me hw to create the sub folder along with the main folder. I am using below code.

      = "C:\\A”; ret = PathFileExists(buf); if(ret == 0) { CreateDirectory(buf,NULL); }
      if I give
      = “C:\\A\\B\\”;
      this code has no effect .

      P Offline
      P Offline
      prasad_som
      wrote on last edited by
      #4

      Suresh H wrote:

      = “C:\\A\\B\\”; this code has no effect .

      Path up to parent directory should be valid to make call to CreateDirectory succesfull. In your case, folder 'A' should be present to create folder 'B' in it.

      Prasad Notifier using ATL | Operator new[],delete[][^]

      1 Reply Last reply
      0
      • R Rajesh R Subramanian

        What exactly is that you are not able to do? Weren't you answered[^] for this question already?


        Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

        S Offline
        S Offline
        Suresh H
        wrote on last edited by
        #5

        I was trying to create main and sub folder at a time so that was the problem Now I changed my code as below , now its working correctly..

        = "C:\\A"; char buf1[ ] = "C:\\A\\B” ret = PathFileExists(buf); if(ret == 0) { CreateDirectory(buf,NULL); CreateDirectory(buf1,NULL); }
        Thank you WhiteSky , brahmma & Prasad for yr help.

        H R 2 Replies Last reply
        0
        • S Suresh H

          I was trying to create main and sub folder at a time so that was the problem Now I changed my code as below , now its working correctly..

          = "C:\\A"; char buf1[ ] = "C:\\A\\B” ret = PathFileExists(buf); if(ret == 0) { CreateDirectory(buf,NULL); CreateDirectory(buf1,NULL); }
          Thank you WhiteSky , brahmma & Prasad for yr help.

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

          One question you want to use of

          = "C:\\A";

          = "C:\\A\\B"

          = "C:\\A\\B\\C"

          ...
          ...
          = "C:\\A\\B\\C\\...T"


          WhiteSky


          S 1 Reply Last reply
          0
          • H Hamid Taebi

            One question you want to use of

            = "C:\\A";

            = "C:\\A\\B"

            = "C:\\A\\B\\C"

            ...
            ...
            = "C:\\A\\B\\C\\...T"


            WhiteSky


            S Offline
            S Offline
            Suresh H
            wrote on last edited by
            #7

            Yes that is the problem ...:(

            H 1 Reply Last reply
            0
            • S Suresh H

              Yes that is the problem ...:(

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

              if you know folers name use of String Table of course before this if your folders are like a b c d...ab ac dc,... use of numbers and convert numbers with itoa or CString::Format forPathFileExists then you can check and create 28 folder with a loop (I think you use of a b c d),but if you different names use of String Table and insert folders name on it and read of it ;)


              WhiteSky


              R S 2 Replies Last reply
              0
              • S Suresh H

                I was trying to create main and sub folder at a time so that was the problem Now I changed my code as below , now its working correctly..

                = "C:\\A"; char buf1[ ] = "C:\\A\\B” ret = PathFileExists(buf); if(ret == 0) { CreateDirectory(buf,NULL); CreateDirectory(buf1,NULL); }
                Thank you WhiteSky , brahmma & Prasad for yr help.

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

                That is some dumb way of doing things. What if you have a 14 folders intermediate to create the innermost folder? Use SHCreateDirectory() or SHCreateDirectoryEx() instead.

                SHCreateDirectory(NULL, TEXT("D:\\Hi there\\Good luck"));


                Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                S P 2 Replies Last reply
                0
                • H Hamid Taebi

                  if you know folers name use of String Table of course before this if your folders are like a b c d...ab ac dc,... use of numbers and convert numbers with itoa or CString::Format forPathFileExists then you can check and create 28 folder with a loop (I think you use of a b c d),but if you different names use of String Table and insert folders name on it and read of it ;)


                  WhiteSky


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

                  Bad advise. Please see here[^]


                  Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                  1 Reply Last reply
                  0
                  • H Hamid Taebi

                    if you know folers name use of String Table of course before this if your folders are like a b c d...ab ac dc,... use of numbers and convert numbers with itoa or CString::Format forPathFileExists then you can check and create 28 folder with a loop (I think you use of a b c d),but if you different names use of String Table and insert folders name on it and read of it ;)


                    WhiteSky


                    S Offline
                    S Offline
                    Suresh H
                    wrote on last edited by
                    #11

                    Thanks WhiteSky ......I will do the same ...;)

                    1 Reply Last reply
                    0
                    • R Rajesh R Subramanian

                      That is some dumb way of doing things. What if you have a 14 folders intermediate to create the innermost folder? Use SHCreateDirectory() or SHCreateDirectoryEx() instead.

                      SHCreateDirectory(NULL, TEXT("D:\\Hi there\\Good luck"));


                      Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                      S Offline
                      S Offline
                      Suresh H
                      wrote on last edited by
                      #12

                      Hi brahmma, I am getting undeclared identifier, we have to include any header or lib file ??? SHCreateDirectory(NULL, TEXT("C:\\A\\B\\C")); SHCreateDirectoryEx(NULL, TEXT("C:\\A\\B\\C")); error C2065: 'SHCreateDirectory' : undeclared identifier error C2065: 'SHCreateDirectoryEx' : undeclared identifier

                      R 2 Replies Last reply
                      0
                      • S Suresh H

                        Hi brahmma, I am getting undeclared identifier, we have to include any header or lib file ??? SHCreateDirectory(NULL, TEXT("C:\\A\\B\\C")); SHCreateDirectoryEx(NULL, TEXT("C:\\A\\B\\C")); error C2065: 'SHCreateDirectory' : undeclared identifier error C2065: 'SHCreateDirectoryEx' : undeclared identifier

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

                        Suresh H wrote:

                        we have to include any header or lib file ???

                        #include "shlobj.h" and you need to link to shell32.lib


                        Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                        S 1 Reply Last reply
                        0
                        • R Rajesh R Subramanian

                          That is some dumb way of doing things. What if you have a 14 folders intermediate to create the innermost folder? Use SHCreateDirectory() or SHCreateDirectoryEx() instead.

                          SHCreateDirectory(NULL, TEXT("D:\\Hi there\\Good luck"));


                          Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                          P Offline
                          P Offline
                          prasad_som
                          wrote on last edited by
                          #14

                          Good one !

                          Prasad Notifier using ATL | Operator new[],delete[][^]

                          R 1 Reply Last reply
                          0
                          • R Rajesh R Subramanian

                            Suresh H wrote:

                            we have to include any header or lib file ???

                            #include "shlobj.h" and you need to link to shell32.lib


                            Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                            S Offline
                            S Offline
                            Suresh H
                            wrote on last edited by
                            #15

                            hi Brahmma , I added shell32.lib to project settings, but still i am getting the same error and also i ahve included #include "shlobj.h" . can u plz tell me what is the cause ??

                            R 1 Reply Last reply
                            0
                            • S Suresh H

                              hi Brahmma , I added shell32.lib to project settings, but still i am getting the same error and also i ahve included #include "shlobj.h" . can u plz tell me what is the cause ??

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

                              I think you need to download the latest Platform SDK.


                              Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                              S 1 Reply Last reply
                              0
                              • R Rajesh R Subramanian

                                I think you need to download the latest Platform SDK.


                                Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                                S Offline
                                S Offline
                                Suresh H
                                wrote on last edited by
                                #17

                                I am using VS 6.

                                P 2 Replies Last reply
                                0
                                • S Suresh H

                                  Hi brahmma, I am getting undeclared identifier, we have to include any header or lib file ??? SHCreateDirectory(NULL, TEXT("C:\\A\\B\\C")); SHCreateDirectoryEx(NULL, TEXT("C:\\A\\B\\C")); error C2065: 'SHCreateDirectory' : undeclared identifier error C2065: 'SHCreateDirectoryEx' : undeclared identifier

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

                                  Suresh H wrote:

                                  SHCreateDirectory(NULL, TEXT("C:\\A\\B\\C")); SHCreateDirectoryEx(NULL, TEXT("C:\\A\\B\\C"));

                                  SHCreateDirectoryEx(NULL, TEXT("C:\\A\\B\\C")); There is a third parameter to the Ex version of this function! Did you not even look at this function in the documentation? the Ex version of this function allows you to define security attributes to the folder that you create. That is the third parameter while using the Ex version and that is the only difference between SHCreateDirectory() and SHCreateDirectoryEx(). If you do not want to define security attributes, then do not use the Ex version.


                                  Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                                  S 1 Reply Last reply
                                  0
                                  • R Rajesh R Subramanian

                                    Suresh H wrote:

                                    SHCreateDirectory(NULL, TEXT("C:\\A\\B\\C")); SHCreateDirectoryEx(NULL, TEXT("C:\\A\\B\\C"));

                                    SHCreateDirectoryEx(NULL, TEXT("C:\\A\\B\\C")); There is a third parameter to the Ex version of this function! Did you not even look at this function in the documentation? the Ex version of this function allows you to define security attributes to the folder that you create. That is the third parameter while using the Ex version and that is the only difference between SHCreateDirectory() and SHCreateDirectoryEx(). If you do not want to define security attributes, then do not use the Ex version.


                                    Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                                    S Offline
                                    S Offline
                                    Suresh H
                                    wrote on last edited by
                                    #19

                                    I just tried with both the options, I want just to create a set of folders c:\\a\\b , then I think SHCreateDirectory() is enough.

                                    1 Reply Last reply
                                    0
                                    • P prasad_som

                                      Good one !

                                      Prasad Notifier using ATL | Operator new[],delete[][^]

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

                                      Thanks!


                                      Nobody can give you wiser advice than yourself. - Cicero ப்ரம்மா

                                      1 Reply Last reply
                                      0
                                      • S Suresh H

                                        I am using VS 6.

                                        P Offline
                                        P Offline
                                        prasad_som
                                        wrote on last edited by
                                        #21

                                        You need to download latest platform SDK. If its already there. Update include directories settings for your IDE, to point to updated SDK.

                                        Prasad Notifier using ATL | Operator new[],delete[][^]

                                        1 Reply Last reply
                                        0
                                        • S Suresh H

                                          I am using VS 6.

                                          P Offline
                                          P Offline
                                          prasad_som
                                          wrote on last edited by
                                          #22

                                          In addition to my previous reply. Mentioned API's are available with IE version 6 onwards. Make sure sure it is present on your machine. And to compile youe code , your need to update IE version in your app, too.

                                          #ifdef _WIN32_IE
                                          #undef _WIN32_IE
                                          #endif
                                          #define _WIN32_IE 0x0601

                                          Use above line of code in your application. Before including concern API file.

                                          Prasad Notifier using ATL | Operator new[],delete[][^]

                                          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