C# - 从FTP下载具有较高修改日期的文件

时间:2016-06-28 10:11:05

标签: c# download ftp last-modified

我有一个带有一些文件的FTP服务器。我在本地目录中有相同的文件(在C:\)。

当我运行该程序时,我希望它搜索FTP服务器中的所有文件,这些文件的最后修改时间戳晚于本地目录中的同一文件(同名),并下载所有已建立的文件。

有人可以给我一个帮助或提示吗?我会感激所有答案!

2 个答案:

答案 0 :(得分:5)

不幸的是,由于它不支持FTP MLSD命令,因此没有真正可靠有效的方法来使用.NET框架提供的功能检索时间戳。 MLSD命令以标准化的机器可读格式提供远程目录的列表。命令和格式由RFC 3659标准化。

.NET框架支持的替代方案:

或者,您可以使用支持现代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); 命令的第三方FTP客户端实现。

例如WinSCP .NET assembly支持。

您可以使用Session.ListDirectorySession.EnumerateRemoteFiles方法阅读返回集合中的RemoteFileInfo.LastWriteTime文件。

或者更简单,您可以使用Session.SynchronizeDirectories让库自动下载(同步)修改后的文件:

MLSD

WinSCP GUI can generate a code template为你。

(我是WinSCP的作者)

答案 1 :(得分:1)