0

从字面上看,我只是想让我的进度条正常工作,但我遇到了一些问题,因为我似乎无法设置最大值。我的代码从一个数组中抓取一个 Array.Length 来尝试获取这个值,但它似乎不起作用。我似乎遇到了一个数组,它在读取它的中途被重置,所以我无法获得合法的价值。我环顾四周,似乎没有其他人遇到这个问题,所以我做了一些实验。我的代码如下:

变量:

public string[] oldFiles;
public string[] newFiles;

函数(inDir 和 outDir 的值只是目录的路径):

public void Backup(string inDir, string outDir)
    {
        if (Directory.Exists(outDir))
        {

            oldFiles = Directory.GetFiles(inDir); //Directory From Input
            newFiles = Directory.GetFiles(outDir); //Directory From Output
            System.IO.FileInfo oldFile;
            System.IO.FileInfo newFile;

            copyProgress.Minimum = 0;
            copyProgress.Maximum = oldFiles.Length + inDir.Length; //Problem Occurs Here
            copyProgress.Step = 1;

我似乎无法从此代码或我尝试过的任何其他内容中获得 copyProgress.Maximum 的准确值。任何帮助表示赞赏,干杯

4

1 回答 1

1

替换这个:

copyProgress.Maximum = oldFiles.Length + inDir.Length;
copyProgress.Step = 1;

与以下:

copyProgress.Maximum = oldFiles.Length; 
copyProgress.Value= newFiles.Length;

删除对 copyProgress.PerformStep() 的调用。

于 2013-11-06T11:22:54.517 回答