progressBar的maxvalue设置成磁盘总大小
minvalue设置成0
以上初始化的时候设置一次,之后不要乱改然后value就设置成当前使用的大小不就行了
minvalue设置成0
以上初始化的时候设置一次,之后不要乱改然后value就设置成当前使用的大小不就行了
解决方案 »
- 我的VS2005奇怪的记忆状态
- C#TCP/IP通信 流量控制
- 正则表达式问题(问题看起来有点怕人,其实不复杂,大家帮我看下)
- 求助,如何通过鼠标选中触发事件?
- 请教大虾门:水晶报表中如何打印rtRichBox中的内容呀???
- 如何把"C:\aa\p6102.raw"这个文件名变成:"C:\aa\p6103.raw"
- 急!Media Player 控制视觉样式的问题
- C# windows 服务操作txt问题。
- 大家一起来讨论这个问题吧!有关SqlConnection连接的!
- 想提高C++,《标准C++宝典》和《C++大学教程》哪本书好一些?看了吗?
- XAML中的控件如何绑定变量
- 启动时窗体显示不完整
http://www.cnblogs.com/inforasc/archive/2009/10/12/1582110.html
除非除了你的程序之外,还有别的程序也在不停创建文件,不过那样一来,你获取了也没用.就是一开始运行的时候,获取一下剩余大小,然后把它作为max
每次创建文件,大小你自己知道,累加到value里
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的最大值,每创建一个文件就把进度条的进度增加相应的长度
for 一下progressbar 的游标 加 就可以了