0

我想要做的是我需要不断检查共享公司网络位置上的文件是否可用。网络管理员执行复制命令并将大磁盘映像文件 .iso 复制到此目标网络位置。上传(复制)过程大约需要 4-5 小时,为了将此文件复制到我的本地计算机,我需要一种方法来确定此文件是否已完全复制。

我尝试过使用 System.IO.fileinfo::Open,它在我的本地实验中运行。但是昨天检查时,它无法判断文件是否被锁定-文件不是一直锁定的,并且由于需要5个小时,因此似乎偶尔文件会短暂解锁(可能是由于操作系统试图分配另一个连续的该文件的空间)。因此我的 powershell 脚本失败了。

我还尝试在复制文件时检查文件的大小,但显然文件的大小始终是其原始大小,所以这是行不通的。

那么有人知道如何验证这一点吗?先感谢您。

4

1 回答 1

1

有一个 FileSystemWatcher,但我不确定它是否在网络文件夹上可靠地工作。另一种选择是尝试检查文件的最后写入时间,如果最后写入时间没有更改,例如 3 分钟,则复制完成。您也可以将其与锁定检查结合使用。

于 2013-10-18T21:12:27.237 回答