Foxtable(狐表)用户栏目专家坐堂 → [求助]复制电脑文件到U盘空间不足的问题


  共有4253人关注过本帖树形打印复制链接

主题:[求助]复制电脑文件到U盘空间不足的问题

帅哥哟,离线,有人找我吗?
lindong
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:468 积分:4132 威望:0 精华:0 注册:2013/12/9 0:52:00
[求助]复制电脑文件到U盘空间不足的问题  发帖心情 Post By:2014/11/3 23:36:00 [只看该作者]

在窗口内有一个按钮,单击该按钮,指定电脑上的文件夹复制到U盘上,当U盘空间不足时,会报错。想问一下高手,能否在U盘空间不够的情况下实现弹窗提示?或取消操作?

 回到顶部
帅哥哟,离线,有人找我吗?
y2287958
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/11/4 6:37:00 [只看该作者]

支持

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/4 9:12:00 [只看该作者]

 至于如何获取文件夹大小,那就需要用递归遍历所有的文件,获取每个文件的大小,相加得到

 回到顶部
帅哥哟,离线,有人找我吗?
lindong
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:468 积分:4132 威望:0 精华:0 注册:2013/12/9 0:52:00
  发帖心情 Post By:2014/11/4 12:38:00 [只看该作者]

可以获取到磁盘信息,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
lindong
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:468 积分:4132 威望:0 精华:0 注册:2013/12/9 0:52:00
  发帖心情 Post By:2014/11/5 2:01:00 [只看该作者]


[此贴子已经被作者于2014-11-5 2:11:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lindong
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:468 积分:4132 威望:0 精华:0 注册:2013/12/9 0:52:00
  发帖心情 Post By: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编辑过]

 回到顶部