Если вам нужна структурированная информация о файлах в каталоге FTP, вы должны использовать стороннюю библиотеку. Платформа .NET не предлагает такой функциональности.
В частности, поскольку он не поддерживает команду MLSD
FTP, это единственный надежный способ получить машиночитаемый список удаленных файлов с их атрибутами.
Есть много сторонних библиотек, которые позволяют это.
Например, для сборки WinSCP .NET:
// 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
Из вашего комментария и вашего другой вопрос, похоже, вам действительно нужно получить самый старый файл в каталоге FTP. Для этого см.:
Оба предназначены для самого нового, а не самого старого файла. Просто замените .OrderByDescending
на .Order
в коде C#, чтобы получить самый старый файл.
(я автор WinSCP)
person
Martin Prikryl
schedule
18.05.2015