如何知道一个文件已在IIS中ftp'd

本文关键字:ftp IIS 何知道 文件 一个 | 更新日期: 2023-09-27 18:13:53

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

我担心的是,如果我不知道文件是否已经完成FTP (ing)到一个文件夹,那么如果我试图做一些事情,我会得到一个文件访问错误。

如何知道一个文件已在IIS中ftp'd

这个问题已经有了答案IIS FTP是否包含API来检测文件上传何时完成?

基本上你可以使用一个自定义的日志提供者

您可以在文件夹上创建一个FileSystemWatcher来监视文件创建事件。

但是,正如您所注意到的,您必须担心文件正在飞行中。为了解决这个问题,您可以使用FileSystemWatcher将文件名排队到一个处理器,该处理器监视/等待文件关闭。这里有一种略显粗糙的检查文件是否已关闭的方法:是否有一种方法来检查文件是否正在使用?

有更低层次的方法,但这可以让你进入大门。FileSystemWatcher有问题——它很容易过载——所以如果这是一个"繁忙"的文件夹,您可以实现自己的轮询和比较,而不是依赖于它。