2

FTP(Windows Server 2008 R2)にファイルが送信され、サービスの1つがファイルを選択して処理します。FTPにあるファイルは500MB以上のオーダーです。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サーバーによってロックされます。

したがって、実行できるのは、読み取り専用のロックを使用してファイルを開いてみることです。それが失敗した場合(例外をスローした場合)、ファイルが利用できないことがわかります。

于 2012-12-17T22:46:16.227 に答える