我想要做的是我需要不断检查共享公司网络位置上的文件是否可用。网络管理员执行复制命令并将大磁盘映像文件.iso复制到此目标网络位置。上传(复制)过程大约需要4-5个小时,为了将此文件复制到我的本地计算机,我需要一种方法来确定该文件是否已完全复制。
我尝试过使用System.IO.fileinfo :: Open,它可以用于我的本地实验。 但是昨天当它检查时,它无法判断文件是否被锁定 - 文件没有被锁定,并且由于需要5个小时,似乎偶尔文件会被短暂解锁(可能是因为操作系统试图分配另一个连续的该文件的空间)。因此我的powershell脚本失败了。
我还尝试在复制时检查文件的大小,但显然文件的大小始终是原始大小,所以这不起作用。
所以有人有任何想法如何验证?提前谢谢。
答案 0 :(得分:1)
有一个FileSystemWatcher,但我不确定它是否在网络文件夹上可靠运行。另一种选择是尝试检查文件的上次写入时间,如果上次写入时间没有改变,例如3分钟,则可能是复制完成。您也可以将其与锁定检查结合使用。