1
我创建了一个服务,通过FTPClient将文件从Linux计算机移动到Windows。 LinuxComputer中的文件由Oracle商店过程生成。FTPClient将文件从Linux移动到Windows。知道它们何时结束生成
问题是,我不知道什么时候文件不再被写入。因为,首先Oracle用0kb创建文件,然后它开始在其中写入。我添加了延迟来获取文件,但它不是解决方案。
FTP连接
FluentFTP.FtpClient originClient = new FluentFTP.FtpClient(FTPOriginHost, FTPOriginUser, FTPOriginPass);
originClient.Connect();
Log.Info("FTP client is Connected.");
originClient.GetWorkingDirectoryAsync().ContinueWith(d => Log.Info(d.Result));
originClient.SetWorkingDirectoryAsync(FTPOriginPath).Wait();
originClient.GetWorkingDirectoryAsync().ContinueWith(d => Log.Info(d.Result)).Wait();
return originClient;
下载
originClient.GetListingAsync(FTPOriginPath).ContinueWith(t =>
{
foreach (var item in t.Result)
{
originClient.DownloadFileAsync(DestinationPath + item.Name, item.FullName, true).ContinueWith(tt =>
{
Log.Info(item.Name + " DOWNLOAD: OK");
}, System.Threading.Tasks.TaskContinuationOptions.OnlyOnRanToCompletion).Wait();
}
}, System.Threading.Tasks.TaskContinuationOptions.OnlyOnRanToCompletion).Wait();
我在移动文件到另一个副本吼声,以检查其是否被复制或没有,但如果我移动文件到另一个文件夹中Linux正在写入时,它正常移动,并且在另一个文件夹中继续写入,因此它不起作用.e
知道文件何时结束的唯一方法是在消息开头添加字节计数。 – jdweng