Zio*_*ioN 1 c# file-transfer ibm-midrange
我编写了一个C#控制台应用程序,用于将大量小型XML文件(大约80000个文件,每个大约300KB,总大小约3GB被传输)从AS400计算机上的共享目录复制到Windows机器上的共享目录.
这两台机器在同一个局域网上,但需要花费数小时才能进行复制.我需要遍历文件,因为我需要更新数据库中的表,我知道这可能是瓶颈,但不包括SQL更新; 是否有更快的方式来传输这些文件?
public void CopyFiles()
{
DirectoryInfo IFS = new DirectoryInfo(@"\\AS400Machine\ShareFolder\");
string NewPath = @"\\WindowsMachine\ShareFolder\";
Directory.CreateDirectory(NewPath);
foreach (FileInfo xmlFile in IFS.GetFiles())
{
var newFullPath = string.Format(@"{0}\{1}", NewPath, xmlFile.Name);
// SQL Update
// Copy File
xmlFile.CopyTo(newFullPath, true);
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的程序在Machine C上运行并且它将文件从机器A传输到机器B,那么除了在多个线程或进程中进行复制之外,您无法做到这一点.
如果你可以在两台机器上运行你的程序,你可以做一些漂亮的技巧,比如压缩文件,这样你就可以传输一个(或几个)大文件,而不是数千个小文件.