从ftp服务器检索文件以检查要下载的文件是否正在进行传输(有人在我们决定下载期间已经上传此文件)的最佳方法是什么? ftp客户端apis处理这个吗? (例如apache commons ftp client)。
答案 0 :(得分:1)
我认为这不太可能。几年前我有类似的问题,我有两个选择。 (不幸的是它是C#,而不是Java) 您可以检查文件是否仍在增长(暗示您需要稍微延迟,因为您需要检查两次)或者如果您正在使用Windows(我不知道linux如何工作)您可以尝试访问此文件并且您应该得到另一个进程正在使用该文件的异常。 只有两种可能性和一个启动器供您思考您的问题。也许别人' 我们提出了一个非常好的解决方案,但就目前而言,这可能是一个小问题,
答案 1 :(得分:1)
Ftp并不是为了告诉你文件是否正在使用,ftp守护程序可以做的最多就是拒绝传输,并且可以在某些服务器中配置。可能有一个服务器临时重命名文件或提供脚本来执行此操作,但您必须找到一个。
答案 2 :(得分:1)
不知道你是否足够,但如果你只需要一些“dum”检查,我会尝试System.getSecurityManager().checkDelete()
。只有在没有打开流的情况下才能删除文件。