何时读取文件是安全的

时间:2012-12-17 22:40:21

标签: c# file

我们将文件发送到我们的FTP(Windows Server 2008 R2),我们的一项服务选择要处理的文件。我们FTP的文件是500 MB甚至更多的订单.. 如何在C#中确定文件已完成复制到FTP目录?我还不想在文件被复制时阅读它。

2 个答案:

答案 0 :(得分:2)

尝试独占锁定阅读

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.
}

答案 1 :(得分:1)

通常,在写入操作期间,文件将被ftp-server锁定。

所以你可以做的是尝试用独占锁打开文件进行阅读。如果失败(抛出异常),您就知道该文件不可用。