如果您需要有关 FTP 目录中文件的结构化信息,则必须使用 3rd 方库。.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 目录中最旧的文件。为此,请参阅:
两者都是最新的,而不是最旧的文件。只需将 C# 代码中的 替换为.OrderByDescending
即可.Order
获取最旧的文件。
(我是WinSCP的作者)