Web窗体显示将大文件拆分为较小文件的进度

时间:2013-12-12 15:40:32

标签: c# file-upload

我目前正在处理一个用户可以上传大文件并输入金额行号的页面。然后我的函数根据用户想要的行号将大文件拆分成较小的文件。

无论如何,假设我最终为10,000条记录的原始文件创建了100个文件,并且用户希望每个文件有100条记录。

我正在寻找一种方法在屏幕上显示当前功能仍在运行时创建的文件数量?

    protected void SplitFileBtn_Click(object sender, EventArgs e)
    {
        var directory = new DirectoryInfo(fileName);
        Empty(directory);
        var fileSize = FileSizeInput.Text;
        _sxw.Start();
        SplitFile(100, fileName);
    }

1 个答案:

答案 0 :(得分:0)

使用BackgroundWorker进行工作。这将负责在非UI线程中执行长时间运行的工作,以便不阻止UI,并提供方便的方法来更新UI随着工作的进度以及在工作完成时更新它。

只需创建一个worker,在DoWork事件处理器中完成工作,在完成文件时从该处理程序调用{​​{1}},然后使用{{1中的当前进度更新UI事件处理程序。在UpdateProgress的MSDN页面以及网络上的其他地方有许多关于此模式的示例。