net ejemplo c# ftp ftp-client

ejemplo - ftp c#



Descargue el Ășltimo archivo de un servidor FTP (1)

Debe recuperar las marcas de tiempo de los archivos remotos para seleccionar la última.

modificación de la marca de tiempo de todos los archivos en un directorio utilizando las características ofrecidas por .NET framework, ya que no es compatible con FTP MLSD . El comando MLSD proporciona una lista de directorios remotos en un formato estandarizado legible por máquina. El comando y el formato está estandarizado por RFC 3659 .

Alternativas que puede usar, que son compatibles con .NET Framework:

  • Método ListDirectoryDetails (el comando FTP LIST ) para recuperar detalles de todos los archivos en un directorio y luego tratar con el formato específico del servidor FTP de los detalles

    Formato DOS / Windows: clase C # para analizar WebRequestMethods.Ftp.ListDirectoryDetails Respuesta FTP
    * formato nix: análisis de la línea FtpWebRequest ListDirectoryDetails

  • Método GetDateTimestamp (el comando FTP MDTM ) para recuperar individualmente marcas de tiempo para cada archivo. Una ventaja es que la respuesta está estandarizada por RFC 3659 a YYYYMMDDHHMMSS[.sss] . Una desventaja es que debe enviar una solicitud por separado para cada archivo, lo que puede ser bastante ineficiente. Este método usa la propiedad LastModified que mencionas:

    const string uri = "ftp://example.com/remote/path/file.txt"; FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri); request.Method = WebRequestMethods.Ftp.GetDateTimestamp; FtpWebResponse response = (FtpWebResponse)request.GetResponse(); Console.WriteLine("{0} {1}", uri, response.LastModified);

Alternativamente, puede utilizar una implementación de cliente FTP de un tercero que sea compatible con el moderno comando MLSD .

Por ejemplo, el ensamblado WinSCP .NET lo admite.

Incluso hay un ejemplo para su tarea específica: descargar el archivo más reciente .
El ejemplo es para PowerShell y SFTP, pero se traduce a C # y FTP fácilmente:

// Setup session options SessionOptions sessionOptions = new SessionOptions { Protocol = Protocol.Ftp, HostName = "example.com", UserName = "username", Password = "password", }; using (Session session = new Session()) { // Connect session.Open(sessionOptions); // Get list of files in the directory string remotePath = "/remote/path/"; RemoteDirectoryInfo directoryInfo = session.ListDirectory(remotePath); // Select the most recent file RemoteFileInfo latest = directoryInfo.Files .OrderByDescending(file => file.LastWriteTime) .First(); // Download the selected file localPath = @"C:/local/path/"; session.GetFiles(session.EscapeFileMask(remotePath + latest.Name), localPath).Check(); }

(Soy el autor de WinSCP)

Tengo que descargar el último archivo de un servidor FTP. Sé cómo descargar el último archivo de mi computadora, pero no sé cómo descargarlo desde un servidor FTP.

¿Cómo puedo descargar el último archivo de un servidor FTP?

Este es mi programa para descargar el último archivo de mi computadora

public Form1() { InitializeComponent(); string startFolder = @"C:/Users/user3/Desktop/Documentos XML"; System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder); IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories); IEnumerable<System.IO.FileInfo> fileQuerry = from file in fileList where file.Extension == ".txt" orderby file.CreationTimeUtc select file; foreach (System.IO.FileInfo fi in fileQuerry) { var newestFile = (from file in fileQuerry orderby file.CreationTimeUtc select new { file.FullName, file.Name }) .First(); textBox2.Text = newestFile.FullName; } }

OK, con este código sé la fecha del último archivo, pero ¿Cómo sé el nombre de este archivo ????????