如何知道文件已在 IIS 中 ftp?
How to know a file has been ftp'd in IIS?
我们正在为我们的 ftp 服务器使用 IIS,我想编写一个 c# windows 服务或一个 HTTP handler/module 来知道一个文件已经 ftp' 到一个文件夹,这样我就可以将它移动到另一个文件夹并更新数据库。
我担心的是,如果我不知道文件是否已完成 FTP (ing) 到文件夹,那么如果我尝试对它执行某些操作,我会遇到文件访问错误。
您可以在监视文件创建事件的文件夹上创建一个 FileSystemWatcher。
但是,正如您所指出的,您必须担心该文件正在运行中。要处理此问题,您可以使用 FileSystemWatcher 将文件名排入处理器 watches/waits 以使文件关闭。您可以使用一种稍微老套的方法来检查文件是否已关闭:Is there a way to check if a file is in use?.
还有一些较低级别的方法,但这会让您入门。 FileSystemWatcher 有问题 - 它很容易过载 - 所以如果这是一个 "busy" 文件夹,你可以实现你自己的轮询和比较而不是依赖它。
这个问题已经回答过了
Does IIS FTP include an API to detect when a file upload completes?
基本上您可以使用自定义日志记录提供程序。
我们正在为我们的 ftp 服务器使用 IIS,我想编写一个 c# windows 服务或一个 HTTP handler/module 来知道一个文件已经 ftp' 到一个文件夹,这样我就可以将它移动到另一个文件夹并更新数据库。
我担心的是,如果我不知道文件是否已完成 FTP (ing) 到文件夹,那么如果我尝试对它执行某些操作,我会遇到文件访问错误。
您可以在监视文件创建事件的文件夹上创建一个 FileSystemWatcher。
但是,正如您所指出的,您必须担心该文件正在运行中。要处理此问题,您可以使用 FileSystemWatcher 将文件名排入处理器 watches/waits 以使文件关闭。您可以使用一种稍微老套的方法来检查文件是否已关闭:Is there a way to check if a file is in use?.
还有一些较低级别的方法,但这会让您入门。 FileSystemWatcher 有问题 - 它很容易过载 - 所以如果这是一个 "busy" 文件夹,你可以实现你自己的轮询和比较而不是依赖它。
这个问题已经回答过了 Does IIS FTP include an API to detect when a file upload completes?
基本上您可以使用自定义日志记录提供程序。