Saltar al contenido

¿Cómo creo un directorio en el servidor FTP usando C#?

Presta atención ya que en esta reseña vas a hallar el resultado que buscas.Esta crónica fue probado por nuestros especialistas para asegurar la calidad y exactitud de nuestro post.

Solución:

Usar FtpWebRequestcon un método de WebRequestMethods.Ftp.MakeDirectory.

Por ejemplo:

using System;
using System.Net;

class Test

    static void Main()
    
        WebRequest request = WebRequest.Create("ftp://host.com/directory");
        request.Method = WebRequestMethods.Ftp.MakeDirectory;
        request.Credentials = new NetworkCredential("user", "pass");
        using (var resp = (FtpWebResponse) request.GetResponse())
        
            Console.WriteLine(resp.StatusCode);
        
    

Aquí está la respuesta si desea crear directorios anidados

No hay una forma limpia de verificar si existe una carpeta en el ftp, por lo que debe hacer un bucle y crear toda la estructura anidada, una carpeta a la vez.

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...
            
        
    

Algo como esto:

// remoteUri points out an ftp address ("ftp://server/thefoldertocreate")
WebRequest request = WebRequest.Create(remoteUri);
request.Method = WebRequestMethods.Ftp.MakeDirectory;
WebResponse response = request.GetResponse();

(un poco tarde. que raro.)

Aquí puedes ver las comentarios y valoraciones de los lectores

Si aceptas, eres capaz de dejar una reseña acerca de qué le añadirías a este artículo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *