我们正在为我们的ftp服务器使用IIS,我想写一个ac#windows服务或一个HTTP处理程序/模块,它会知道文件已被ftp到一个文件夹,以便我可以移动它们它到另一个文件夹以及更新数据库。
我担心的是,如果我不知道该文件是否已完成FTP(ing)到文件夹,那么如果我尝试用它做某事我会得到文件访问错误。
答案 0 :(得分:1)
您可以在观看文件创建活动的文件夹上创建FileSystemWatcher。
但是,正如您所指出的,您必须担心文件正在传输中。要解决此问题,您可以使用FileSystemWatcher将文件名排入监视/等待文件关闭的处理器。您可以通过以下方式检查文件是否已关闭:Is there a way to check if a file is in use?。
有较低级别的方法,但这会让你进入。 FileSystemWatcher有问题 - 它很容易重载 - 所以如果这是一个“忙”文件夹,你可以实现自己的民意调查和比较而不是依赖它。
答案 1 :(得分:1)
这个问题已经回答了这个问题 Does IIS FTP include an API to detect when a file upload completes?
基本上,您可以使用自定义日志记录提供程序。