我们这里有一台 Windows 服务器,有一天我们将通过 sftp 获取文件夹中的一些文本文件。我没有更多信息,但也许这已经足够了。现在我应该编写一个函数,将这些文件移动到另一个文件夹中。嗯,这不应该那么难,我想......但现在我意识到我能够在文件完成之前移动它。所以我正在寻找一些解决方案,我真的很困惑。
我的解决方案是检查文件及其周围的进程。因为如果文件还没有完成,有一个复制过程,我可以检查这个过程。为方便起见,我只需要尝试锁定文件,如果没有其他进程,那么文件准备好移动了吗?
using (File.Open("myFile", FileMode.Open, FileAccess.Read, FileShare.None))
{ /*rdy!*/ }
但是现在我看到人们正在写一些关于校验和测试或测试文件大小的东西,如果文件大小没有改变,那么文件就准备好了。这东西是不是有点复杂?请告诉我,我的解决方案也可以工作......我无法使用任何服务器对服务器 sftp 的东西进行测试。我只知道如果我将文件复制到另一个文件夹(通过资源管理器),这是可行的。这也可以通过 sftp 传输工作吗?有任何想法吗?谢谢