Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I need to upload a full folder using FTP. Is there is any option for transferring a folder and all of its contents at once?

share|improve this question

migrated from Apr 12 '11 at 13:21

This question came from our site for professional and enthusiast programmers.

If you're using a standard command-line ftp client, the MPUT command will allow you to transfer all files matching a (shell glob-style) pattern, so MPUT * will send all files in the current directory. There is also MGET to retrieve files matching a pattern.

By default, both MPUT and MGET will prompt for whether to transfer each file before doing so. You'd probably want to turn off prompting with the "PROMPT" command (no argument; it's a toggle).

share|improve this answer
This question originally came from stackoverflow, so I feel that it should be the accepted answer. Though the original asker seems to have vanished so isn't going to accept one.... – codetaku Aug 20 '14 at 15:17

Use an FTP client such as LeechFTP or FileZilla or something similar. Many people swear by CuteFTP, but it's shareware last I checked. All support transferring a whole folder including directory structure.

share|improve this answer
+1 for FileZilla: – William Jackson Apr 12 '11 at 14:23

You can use ncftpput. Do the following:

  1. Install ncftp:

    Yum install ncftp


    apt-get install ncftp
  2. Execute the following command:

    ncftpput -R -v -u "ftp-username" ftp-upload-path local-path/*
share|improve this answer
  1. have the user/client zip the folder
  2. upload the zip file
  3. unzip the folder server side.
share|improve this answer
note: my answer was posted at StackOverflow. That's why it references a "coding" solution. – Chase Florell May 15 '11 at 1:20

A simple tutorial for other Windows newbies like me who wind up here:

The easiest way to upload an entire folder (with all subfolders and files in them) is:

  1. Download NcFTP Client (it's free, but you can donate) from this link.
  2. Choose NcFTP Client 3.2.5 for Microsoft Windows from the list.
  3. Install it.
  4. When done, a small CMD window with a cherries icon will pop-up. You don't need it.
  5. Just open a standard CMD window and type:
    ncftpput -u yourUserNameHere -p yourUserPasswordHere -R /
    (as one line).

Note that:

  • -R is a flag for "recursive"; it makes the command copy all subfolders recursively
  • / (slash) is your website's root directory
  • C:\yourFolderDirectoryHere\* selects everything inside C:\yourFolderDirectoryHere
share|improve this answer

Check this out.

You can also programmatically create a folder on the server, and then upload all files to that new folder.

share|improve this answer

FileZilla is great for this. If you don't want to download/install anything, this can be done with Internet Explorer. Go into the advanced options, and select Enable FTP folder view (outside of Internet Explorer). Then you can point an explorer window at your FTP server and drag-and-drop files and folders between explorer windows.

share|improve this answer

Firefox has a plug-in called FireFtp that is a nice ftp client.

share|improve this answer

The target dir is a zip file. You can copy the full zip file into the ftp server using below code.

                                         //Taking source and target directory path
                                         string sourceDir = FilePath + "Files\\" + dsCustomer.Tables[0].Rows[i][2].ToString() + "\\ConfigurationFile\\" + dsSystems.Tables[0].Rows[j][0].ToString() + "\\XmlFile";

                                        string targetDir = FilePath + "Files\\Customers\\" + CustomerName + "\\" + SystemName + "\\";                                                                                       
                                        foreach (var srcPath in Directory.GetFiles(sourceDir))
                                            //Taking file name which is going to copy from the sourcefile                                              
                                            string result = System.IO.Path.GetFileName(srcPath);

                                            //If that filename exists in the target path
                                            if (File.Exists(targetDir + result))
                                                //Copy file with a different name(appending "Con_" infront of the original filename)
                                                System.IO.File.Copy(srcPath, targetDir + "Con_" + result);
                                            //If not existing filename
                                                //Just copy. Replace bit is false here. So there is no overwiting.
                                                File.Copy(srcPath, srcPath.Replace(sourceDir, targetDir), false);
share|improve this answer
That's nice, but your program doesn't compile. – DavidPostill Jun 15 at 17:32

You must log in to answer this question.