以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]复制电脑文件到U盘空间不足的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59419) |
-- 作者:lindong -- 发布时间:2014/11/3 23:36:00 -- [求助]复制电脑文件到U盘空间不足的问题 在窗口内有一个按钮,单击该按钮,指定电脑上的文件夹复制到U盘上,当U盘空间不足时,会报错。想问一下高手,能否在U盘空间不够的情况下实现弹窗提示?或取消操作? |
-- 作者:y2287958 -- 发布时间:2014/11/4 6:37:00 -- 支持 |
-- 作者:Bin -- 发布时间:2014/11/4 8:17:00 -- Dim allDrives() As System.IO.DriveInfo = System.IO.DriveInfo.GetDrives() Dim d As System.IO.DriveInfo For Each d In allDrives output.show("硬盘 : " & d.name) output.show("类型 : " & d.DriveType) If d.IsReady = True Then output.show("标题: " & d.VolumeLabel) output.show("格式: " & d.DriveFormat) output.show("对当前用户的可用空间: " & d.AvailableFreeSpace & " bytes") output.show("全部可用空间: " & d.TotalFreeSpace & " bytes") output.show("整个盘容量: " & d.TotalSize & "bytes ") End If Next
|
-- 作者:有点甜 -- 发布时间:2014/11/4 9:12:00 -- 至于如何获取文件夹大小,那就需要用递归遍历所有的文件,获取每个文件的大小,相加得到 |
-- 作者:lindong -- 发布时间:2014/11/4 12:38:00 -- 可以获取到磁盘信息,谢谢! |
-- 作者:lindong -- 发布时间:2014/11/5 2:01:00 -- [此贴子已经被作者于2014-11-5 2:11:33编辑过]
|
-- 作者:lindong -- 发布时间:2014/11/5 19:01:00 -- 虽然自己不会递归文件,但这段代码可以做到二级目录的文件,已经够用了,谢谢高人指点。现在把自己写的代码贴出来,希望有人可以改进一下就更好了! Dim k As New System.IO.DirectoryInfo(Tables("表c").current("第一列") ) Dim dirs As String() =System.IO.Directory.GetDirectories(Tables("表c").current("第一列") ) For Each n As String In dirs Dim w As New System.IO.DirectoryInfo(n) Dim v As System.IO.FileInfo For Each v In w.GetFiles s2=s2+v.length t2=s2 Next Dim d As New System.IO.DirectoryInfo(Tables("表c").current("第一列") ) Dim s As Long Dim t As Long Dim sum As Long Dim s2 As Long Dim t2 As Long Dim f As System.IO.FileInfo For Each f In d.GetFiles s=s+f.length t=s Next Next sum=t+t2 Dim t4 As Long Dim allDrives() As System.IO.DriveInfo = System.IO.DriveInfo.GetDrives() Dim d3 As System.IO.DriveInfo For Each d3 In allDrives If d3.drivetype = 2 Then t4=d3.AvailableFreeSpace End If Next If sum < t4 Then Forms("等待窗口").open() Application.DoEvents FileSys.CopyDirectory (Tables("表c").current("第一列") , Tables("表c").current("第二列") ,True) Forms("等待窗口").close() MessageBox.show("复制成功") Else MessageBox.show("磁盘空间不足") End If
[此贴子已经被作者于2014-11-5 19:05:23编辑过]
|