5 Replies Latest reply on Feb 8, 2017 3:24 AM by funsekon

    Is it possible to copy folder with Extendscript

    funsekon Level 1

      Not sure if this is only available to files... Trying to create a folder locally (C: drive) and then copy the folder (and contents) to another folder on the network...

       

      var foSource = new Folder(myPath);
      
      foSource.copy(strTarget);
      

       

      This throws an error... any ideas?

       

      Thanks!

        • 1. Re: Is it possible to copy folder with Extendscript
          Klaus Göbel Level 3

          What is your "strTarget"?

          How is it build?  It should be something like "C:\\Users\\User\\MyFolder";

          IMPORTANT: backslash must be double( means: masked)

          • 2. Re: Is it possible to copy folder with Extendscript
            Ian Proudfoot Level 3

            It may be because the Folder object does not have a copy() function.

             

            I had a quick look at this and I believe that you will have to create your own recursive folder copy function. That will need to create a new folder, then copy each file into it. A recursive function will allow it to also create/copy sub-folders.

             

            By the way, I normally use URI notation for all paths as it saves all that double backslash nonsense and it's how the File and Folder objects store the paths anyway.

             

            Ian

            • 3. Re: Is it possible to copy folder with Extendscript
              Klaus Göbel Level 3

              Hi Ian,

               

              you're absolutely right.

              Only a file can be copied, but not a folder.

              @funsekon: You have to create the (sub-)folder and copy the FILES.( file by file)

              • 4. Re: Is it possible to copy folder with Extendscript
                Klaus Göbel Level 3

                Hi funsekon,

                 

                here's one way to do that:

                 

                var NewFileName;
                var oFiles;
                var oNewFolder
                
                var StartFolder = "C:\\temp";   // preselection for Windows Explorer
                
                var locFolder = new Folder(StartFolder);
                
                var oOldFolder = locFolder.selectDlg ("Folder");
                     
                if (oOldFolder != null)
                    {
                        
                    oNewFolder = new Folder(oOldFolder + "\\NewFolder") ;
                    if (oNewFolder.exists)
                        {
                        // alert("overwrite?")
                        // ......
                        }
                    else
                        {
                        oNewFolder.create();
                        }
                    
                        oFiles = oOldFolder.getFiles ("*.fm");
                    
                        for (var i = 0; i < oFiles.length; i++)
                            {
                             NewFileName =    oFiles[i].fsName.replace(oOldFolder.fsName,oNewFolder.fsName);
                            oFiles[i].copy(NewFileName);
                            }
                }
                
                • 5. Re: Is it possible to copy folder with Extendscript
                  funsekon Level 1

                  Thanks Klaus, this procedure works wonders. Yes, my target folder looks like: "C:\\Users\\User\\MyFolder";

                   

                  Thanks @Ian Proudfoot for your suggestions and comments...