发现 FTP 上的文件属性
我正在开发一个非常基本的预定 FTP 程序,但如果上次修改日期没有更改,我不想费心传输文件,所以我需要将上次存储的修改时间与当前修改时间预下载进行比较。我正在使用 FtpWebRequest/FtpWebResponse 来设置连接。
有没有办法将 IO.FileInfo 与 FTP 一起使用?如果没有,是否有一个类可以让我获取修改日期?
谢谢
I'm working on a very basic scheduled FTP program, but I don't want to bother transferring files if the Last Modified date hasn't changed, so I need to compare the last stored modified time with the current modified time pre-download. I'm using FtpWebRequest/FtpWebResponse to set up the connection.
Is there any way to use IO.FileInfo with an FTP? If not, is there a class that will let me get the modified date?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要从服务器请求目录列表,然后解析它以查找每个文件的日期...然后将其与本地文件的日期进行比较。尽管 FTP 是一个“标准”,但它没有指定目录列表格式,因此每个供应商自然都有自己的风格,这对于您计划连接到多个站点来说可能是一个痛苦。
使用像 Robo-FTP 这样也支持 COM 接口的可编写脚本的 FTP 客户端可能会更好地利用您的时间。每天仅下载一次新文件或更新文件的脚本:
您会注意到这是一个每天一次迭代的无限循环。您将其设置为作为 Windows 服务运行,这样每当计算机重新启动时它就会自动启动,就这样,您就完成了。
You'll need to request a directory listing from the server and then parse it to find the date on each file... then compare it to the dates on your local files. Even though FTP is a "standard" it does not specify the directory listing format so naturally each vendor has their own style which can be a pain in the rear of you are planning to connect to multiple sites.
It might be a better use of your time to use a scriptable FTP client like Robo-FTP that also supports a COM interface. The script for downloading only new or updated files once per day:
You'll notice it is an infinate loop with one iteration per day. You set this up to run as a Windows Service so it starts automatically whenever the computer is rebooted and thats it, you are done.