我正在编写一个ASP.NET webapp,它将CD的内容复制到网络共享。我需要定期检查复印作业是否完成。
执行此操作的一种方法是检查网络共享文件夹,以查看自上次检查后文件大小是否已更改,但这似乎有些狡猾。有没有人有更好的想法如何做到这一点?
提前致谢, 斯泰恩
EDIT
更多解释:
基本上我每隔5秒调用一次JsonResult动作方法,称为getStatus(source,destination)。此方法需要检查以下内容:
- 如果源目录仍为空,则无法启动复制 - >返回状态“等待”
- 如果源目录包含文件,则复制可以开始-_>呼叫复制方法+返回状态“复制”
- 如果目标目录包含文件,并且文件大小保持不变,则复制完成 - >返回状态“已完成”
谢谢!
答案 0 :(得分:2)
在您的webapp中,使用阻止文件复制操作,例如File.Copy,但运行在后台线程中执行复制的过程。在后台线程中,将状态信息(例如“完成9个文件中的3个”或“我已完成!”或“发生错误:...”)写入某个共享对象(静态变量,Session
对象,数据库,...)。然后编写一些显示该共享对象内容的Status.aspx
页面。
答案 1 :(得分:0)
使用2种方法从客户端的javascript端创建Web服务:StartCopying,CheckStatus。