How do I create a directory on FTP server using C#?

前端 未结 4 1152
栀梦
栀梦 2020-11-29 01:36

What\'s an easy way to create a directory on an FTP server using C#?

I figured out how to upload a file to an already existing folder like this:

usi         


        
4条回答
  •  感动是毒
    2020-11-29 01:52

    Here is the answer if you want to create nested directories

    There is no clean way to check if a folder exist on the ftp so you have to loop and create all the nested structure one folder at the time

    public static void MakeFTPDir(string ftpAddress, string pathToCreate, string login, string password, byte[] fileContents, string ftpProxy = null)
        {
            FtpWebRequest reqFTP = null;
            Stream ftpStream = null;
    
            string[] subDirs = pathToCreate.Split('/');
    
            string currentDir = string.Format("ftp://{0}", ftpAddress);
    
            foreach (string subDir in subDirs)
            {
                try
                {
                    currentDir = currentDir + "/" + subDir;
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(currentDir);
                    reqFTP.Method = WebRequestMethods.Ftp.MakeDirectory;
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(login, password);
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    ftpStream = response.GetResponseStream();
                    ftpStream.Close();
                    response.Close();
                }
                catch (Exception ex)
                {
                    //directory already exist I know that is weak but there is no way to check if a folder exist on ftp...
                }
            }
        }
    

提交回复
热议问题