何时可以安全读取文件



我们将文件发送到我们的FTP(Windows Server 2008 R2),我们的一项服务选择文件进行处理。我们的FTP文件的数量级为500 MB或更多。如何在 C# 中确定文件已完成复制到 FTP 目录?我不想在文件仍在复制时阅读它。

尝试在阅读时采取独占锁定

string filename = "Test.txt";
try
{
   using(FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.None))
   {
      // Read content here
   }
}
catch(IOException)
{
    // Occurs if the file cannot be exclusively locked.
}

通常,在写入操作期间,文件会被 ftp 服务器锁定。

因此,您可以做的是尝试使用独占锁打开文件以进行读取。如果失败(引发异常),则表明该文件不可用。

最新更新