我们将文件发送到我们的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 服务器锁定。
因此,您可以做的是尝试使用独占锁打开文件以进行读取。如果失败(引发异常),则表明该文件不可用。