C#生成文件,进度条该怎么写?

p523399 2015-02-12 02:39:16
C#使用FileStream创建了许多文件,在创建的同时获取磁盘剩余空间,彻底填满磁盘空间时进度条100%

//获取磁盘剩余空间
private static long freespace(string driveDirectoryName)
{
long freefreeBytesAvailable = 0;
DriveInfo drive = new DriveInfo(driveDirectoryName);
freefreeBytesAvailable = (long)drive.AvailableFreeSpace;
return freefreeBytesAvailable;
}


然后用循环FileStream fs = new FileStream(fileName,FileMode.OpenOrCreate);创建指定后缀名的文件。
想有一个进度条来提示这个填满磁盘空间的进度,应该怎么写呢?progressBar查了一下,觉得无从下手。
请各位大师指点,谢谢。
...全文
302 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
黎大 2015-02-13
  • 打赏
  • 举报
回复
文件 size 做 progressbar的 maximum 每写入多少字节 for 一下 progressbar 的游标 加 就可以了
sunny906 2015-02-12
  • 打赏
  • 举报
回复

            long freeSpace = 0;
            DriveInfo drive = new DriveInfo("D");
            freeSpace = (long)drive.AvailableFreeSpace;
            this.progressBar1.Maximum = Convert.ToInt32(freeSpace / 1000);
            ThreadPool.QueueUserWorkItem((object o) =>
                {
                    while (freeSpace > 0)
                    {
                        using (FileStream fs = new FileStream("", FileMode.OpenOrCreate))
                        {
                            //写文件
                            freeSpace -= fs.Length;
                            this.progressBar1.Invoke(new Action(() => this.progressBar1.Value += Convert.ToInt32(fs.Length/ 1000)));
                        }
                    }
                });
把磁盘剩余空间稍做处理作为progressBar的最大值,每创建一个文件就把进度条的进度增加相应的长度
Justin-Liu 2015-02-12
  • 打赏
  • 举报
回复
文件size大小就是进度
於黾 2015-02-12
  • 打赏
  • 举报
回复
其实你完全没必要每次创建文件都去获取剩余磁盘大小,有什么意义吗 除非除了你的程序之外,还有别的程序也在不停创建文件,不过那样一来,你获取了也没用. 就是一开始运行的时候,获取一下剩余大小,然后把它作为max 每次创建文件,大小你自己知道,累加到value里
exception92 2015-02-12
  • 打赏
  • 举报
回复
进度就是你创建 文件的大小呀。 你把文件大小累加的值,就是进度值;获取磁盘的大小 就是pb的最大值。 http://www.cnblogs.com/inforasc/archive/2009/10/12/1582110.html
於黾 2015-02-12
  • 打赏
  • 举报
回复
progressBar的maxvalue设置成磁盘总大小 minvalue设置成0 以上初始化的时候设置一次,之后不要乱改 然后value就设置成当前使用的大小不就行了

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧