前辈们们麻烦过过目,这个程序能正常运作吗?

weixin_43405952 2020-02-12 07:16:31
我做的是一个导相机照片的程序。Timer1为检测是否有照片,Button1为激活拷贝文件的动作,ProgressBar1为反应拷贝进度情况的进度条,全部组件都是启用状态。最近没出去拍照,没办法验证它的运行情况,最担心的是进度条ProgressBar1,不知道能不能反应实际拷贝文件的进度。
Public Class Form1

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If (System.IO.Directory.Exists("F:\DCIM")) Then
Label2.Text = "有照片"
Else
Label2.Text = "无照片"
End If
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If (System.IO.Directory.Exists("F:DCIM")) Then
Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory("f:\DCIM", "C:\Users\Administrator\Desktop\新片")
MsgBox("完成", vbOKOnly, "提示")
Else
MsgBox("没有可复制的照片", vbOKOnly, "提示")
End If
End Sub

Private Sub ProgressBar1_Click(sender As Object, e As EventArgs) Handles ProgressBar1.Click
Dim fileList1() As String = System.IO.Directory.GetFiles("d:\DCIM", "*.*")
Dim i1 As Integer = fileList1.Length
Dim fileList2() As String = System.IO.Directory.GetFiles("C:\Users\Administrator\Desktop\新片", "*.*")
Dim i2 As Integer = fileList2.Length
Dim jdt1 As Double = i1 / i2 * 100
Dim jdt2 As Integer = System.Math.Round(jdt1)
ProgressBar1.Value = jdt2
End Sub
End Class
...全文
390 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
良朋 2020-02-17
  • 打赏
  • 举报
回复
一定要显示进度条的话可以考虑开一个线程,然后同步显示。
面向医学编程 2020-02-16
  • 打赏
  • 举报
回复
你这个是单击进度条刷新进度情况的?太不智能了吧,定时器上卡,可以用异步或多线程监控。加个延迟避免刷新频繁卡顿。
tayirvb 2020-02-14
  • 打赏
  • 举报
回复
用ProgressBar文件比较多时候有意思。
你把文件夹下面的文件拷贝之前。每个文件的读取大小。可以显示ProgressBar上同步进度条。网上下载文件的时候网速慢用ProgressBar。
但是本电脑上我也没有用。
不好意思事实情况没有了解。
weixin_43405952 2020-02-13
  • 打赏
  • 举报
回复
引用 4 楼 weixin_43405952 的回复:
[quote=引用 3 楼 tayirvb 的回复:]
拍照文件好几个MB 的 不用ProgressBar。
Timer 里面判断完毕。然后照片拷贝。
没有拍照的时候 Timer 暂停。
看来您不了解摄影,一般都用RAM格式,一个文件最少也有几M,如果采用F/8,即景深比较大,一个文件就可以超过10M,这还是一般APS-C或者全福相机的文件,如果用中福相机文件或者高像素相机文件体积更大。我有时一天就能拍上两三G,而且我按快门已经不算勤快了,一天照片不过百张。[/quote]不好意思,我可能误会您的意思了。但是如果照片很多,没有进度条的话很难判断是不是卡顿了。
weixin_43405952 2020-02-13
  • 打赏
  • 举报
回复
引用 3 楼 tayirvb 的回复:
拍照文件好几个MB 的 不用ProgressBar。
Timer 里面判断完毕。然后照片拷贝。
没有拍照的时候 Timer 暂停。
看来您不了解摄影,一般都用RAM格式,一个文件最少也有几M,如果采用F/8,即景深比较大,一个文件就可以超过10M,这还是一般APS-C或者全福相机的文件,如果用中福相机文件或者高像素相机文件体积更大。我有时一天就能拍上两三G,而且我按快门已经不算勤快了,一天照片不过百张。
tayirvb 2020-02-13
  • 打赏
  • 举报
回复
拍照文件好几个MB 的 不用ProgressBar。
Timer 里面判断完毕。然后照片拷贝。
没有拍照的时候 Timer 暂停。
weixin_43405952 2020-02-12
  • 打赏
  • 举报
回复
引用 1 楼 贵阳老马马善福专业维修游泳池堵漏防水工程 的回复:
显然不行,进度条更新的代码为什么写在ProgressBar1_Click里面,你怎么想的
写在Timer里会出现卡顿
threenewbee 2020-02-12
  • 打赏
  • 举报
回复
显然不行,进度条更新的代码为什么写在ProgressBar1_Click里面,你怎么想的

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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