gpt4 book ai didi

c# - 使用数组 C# 复制文件的进度条

转载 作者:太空宇宙 更新时间:2023-11-03 20:27:58 24 4
gpt4 key购买 nike

我有一个 if 语句,用于检查目录是否存在,如果存在,则将该文件夹复制到指定位置。

整个复制过程是在一个预先确定的文件夹位置数组上进行的,for循环遍历数组并在每个位置复制文件夹及其数据。

目前有 200 个不同的位置可供复制,还有更多位置有待添加。

我正在尝试围绕这 200 多个文件夹的复制实现进度条,但一直遇到错误,我认为我遇到的问题主要是由于阵列,我看过的教程(差异很大来自彼此)仅涵盖了基本的文件复制。

任何有关如何使进度条正常工作的帮助或提示将不胜感激:)

for (int i = 0; i < pathArray.Length; i++)
{

string sourcePath = pathArray[i];

//MISSING CODE

if (System.IO.Directory.Exists(sourcePath))
{

System.IO.Directory.CreateDirectory(targetPathProper);

foreach (string dirPath in System.IO.Directory.GetDirectories(sourcePath,"*",
(System.IO.SearchOption.AllDirectories)))
{
System.IO.Directory.CreateDirectory(dirPath.Replace(sourcePath,
targetPathProper));
}

foreach (string newPath in System.IO.Directory.GetFiles(sourcePath, "*",
(System.IO.SearchOption.AllDirectories)))
{
System.IO.File.Copy(newPath, newPath.Replace(sourcePath,
targetPathProper), true);
}

} //end if
} // end for

最佳答案

你说你得到了一个错误,你得到了什么错误?

至于你的进度条,你可以简单地在数组中的每个基本目录递增。没有真正需要为每个文件递增。或者,如果需要指示每个文件的进度,您可以有两个进度条。

progressBar1.Maximum = pathArray.Length;
progressBar1.Value = 0;
for (int i = 0; i < pathArray.Length; i++)
{

string sourcePath = pathArray[i];

progressBar1.Value++;

if (System.IO.Directory.Exists(sourcePath))
{

System.IO.Directory.CreateDirectory(targetPathProper);
string[] subDirs = System.IO.Directory.GetDirectories(sourcePath,"*",(System.IO.SearchOption.AllDirectories))
progressBar2.Maximum = subDirs.Length;
progressBar2.Value = 0;
foreach (string dirPath in subDirs)
{
progressBar2.Value++;
System.IO.Directory.CreateDirectory(dirPath.Replace(sourcePath,
targetPathProper));
Application.DoEvents();
}

progressBar2.Value = 0;
foreach (string newPath in subDirs)
{
progressBar2.Value++;
System.IO.File.Copy(newPath, newPath.Replace(sourcePath,
targetPathProper), true);
Application.DoEvents();
}

} //end if
} // end for

关于c# - 使用数组 C# 复制文件的进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com