在我的工具中,我内置了一个功能,可以将文件从用户指定的位置复制到另一个位置。如果我从中复制并复制到基于网络驱动器的位置,则单个2 kb文件大约需要10分钟才能复制。这不是一个网络问题,因为在没有工具的情况下这样做是正常的。
期望:将文件从一个网络位置复制到另一个网络位置的工具。
会发生什么:单个1 kb文件复制需要10分钟以上。如果我从本地驱动器到网络位置,或者反之亦然,那就更好了。
这是我的复制代码:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
if (!string.IsNullOrWhiteSpace(fedPREVIEW.Text))
if (!string.IsNullOrWhiteSpace(pathofsrcfilesTOCOPY.Text))
if (!string.IsNullOrWhiteSpace(foldercreationPATH.Text))
{
for (int i = 1; i <= 100; i++)
{
string sourcePath = @pathofsrcfilesTOCOPY.Text;
string targetPath = foldercreationPATH.Text + "\\01_SR";
if (!Directory.Exists(targetPath))
{
Directory.CreateDirectory(targetPath);
}
//Copy the folders from sourcepath and place into mentioned target path,
//Overwrite the folder if same file is exist in target path
foreach (string srcPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories))
{
Directory.CreateDirectory(srcPath.Replace(sourcePath, targetPath));
}
//Copy the file from sourcepath and place into mentioned target path,
//Overwrite the file if same file is exist in target path + it also copies subfolders and files from folders.
foreach (var srcPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories))
{
System.IO.File.Copy(srcPath, srcPath.Replace(sourcePath, targetPath), true);
}
// Report progress.
backgroundWorker1.ReportProgress(i);
}
}
}
答案 0 :(得分:5)
你在这里做了100次同样的事情(即&#34;复制文件&#34;按你所说的做,100次)。
但是你说问题是复制一个文件,而提供的源显示完整的路径复制(创建目录然后复制所有文件...... 100次!)。
只需调试代码,看看它在做什么......如果2kb文件的单个 System.IO.File.Copy
操作需要10分钟,那么你的问题是对的......就像你一样发布它,问题是错误的,或者你的测量结果是,因为你的代码所做的远不止是复制文件(...而且它已经做了100次!)
...... 100次!