2

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

4

2 回答 2

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.
}
于 2012-12-17T22:47:51.360 回答
1

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

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

于 2012-12-17T22:46:16.227 回答