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