Если вам необходимо структурированная информация о файлах в директории FTP, вы должны использовать 3rd библиотеку партии. .NET Framework не предлагает такую функциональность.
В частности, поскольку он не поддерживает команду FTP MLSD
, что является единственным надежным способом получения машиночитаемого списка удаленных файлов с их атрибутами.
Существует много сторонних библиотек, которые позволяют это.
Например с WinSCP .NET assembly:
// 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);
foreach (RemoteFileInfo fileInfo in directoryInfo.Files)
{
Console.WriteLine("{0} with size {1}, permissions {2} and last modification at {3}",
fileInfo.Name, fileInfo.Length, fileInfo.FilePermissions,
fileInfo.LastWriteTime);
}
}
Ссылки:
https://winscp.net/eng/docs/library_session_listdirectory
https://winscp.net/eng/docs/library_remotefileinfo
С вашей comment и ваш other question, вы, кажется, на самом деле нужно, чтобы получить самый старый файл в каталоге FTP. Для этого смотрите:
Оба для новейших, не самый старый, файл. Просто замените .OrderByDescending
на .Order
в коде C#, чтобы получить самый старый файл.
(я автор WinSCP)
и как я могу загрузить файл с самой старой датой создания с FTP-сервера? – garci
Разберите поток, он должен содержать список всех файлов. Затем, используя FtpWebRequest/FtpWebResponse, загрузите самую старую. Обратитесь к этому: [link] (https://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.aspx) – Leonardo
, но я хочу знать самый старый файл с ковра сервера FTP, а FtpWebRequest/FtpWebResponse мне не помогает. – garci