在FTP上传期间阻止文件

时间:2010-03-01 05:09:11

标签: c# upload ftp download locking

我有两个服务客户端和服务器。某些ftp上的客户端上传文件和服务器下载它。因此,当客户端没有完成上传文件并且服务器已经开始下载此文件时,可能会出现这种情况在那种情况下,我有cuted文件。怎么解决呢?

例如,当我上传并同时使用FileZilla下载它时,下载过程等待上传完成然后开始下载。所以下载的文件没有相关。

这是上传代码:

request = (FtpWebRequest)FtpWebRequest.Create("ftp://192.168.99.3/"
+ file7z); 
request.Credentials = new NetworkCredential("login", "pass"); 
request.Method = WebRequestMethods.Ftp.UploadFile; 
request.Proxy = null;        
request.UsePassive = true; request.UseBinary = true;

byte[] fileContents = File.ReadAllBytes(all7zfullpath); 
request.ContentLength = fileContents.Length;

Stream stRequest = request.GetRequestStream(); 
stRequest.Write(fileContents, 0, fileContents.Length); 
stRequest.Close();

2 个答案:

答案 0 :(得分:0)

一种解决方案是使用特殊名称或特殊文件夹上传文件,以便下载程序无法识别它。然后让客户端在文件完全上传后移动/重命名该文件,以便服务器识别它。

答案 1 :(得分:0)

如果您可以控制FTP服务器,则只需锁定当前正在上传的任何文件即可。然后下载尝试将失败,直到上载完成。这有一个缺点,服务器必须经常重试。