如何知道一个文件已经在IIS中被ftp了?

时间:2015-09-21 21:37:02

标签: c# iis ftp httphandler

我们正在为我们的ftp服务器使用IIS,我想写一个ac#windows服务或一个HTTP处理程序/模块,它会知道文件已被ftp到一个文件夹,以便我可以移动它们它到另一个文件夹以及更新数据库。

我担心的是,如果我不知道该文件是否已完成FTP(ing)到文件夹,那么如果我尝试用它做某事我会得到文件访问错误。

2 个答案:

答案 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?

基本上,您可以使用自定义日志记录提供程序。