VB 获得大文件 大小 超过4G
vb吧
全部回复
仅看楼主
吧务
level 13
VBzhuyongxing 楼主
太大都是负数
2017年03月06日 03点03分 1
level 10
VB6数据类型的限制:
32位整数,从“2GB”开始,它的值就是负数了;
32位整数,只能表示“4GB”以内(达到4GB时已经“溢出”)的文件大小。
要获取“超大文件”的大小,用API函数:GetFileAttributesEx()
最大理论文件大小可达 2^64 -1 字节。
在VB6中要用Double类型来表示,自己要“计算处理”一下函数返回的数据值。
2017年03月06日 04点03分 2
有没有整个的操作过程示例?
2017年03月06日 05点03分
@oshi001 你们都是老鸟级别的人了,还要什么示例?MSDN、度娘,都可以查一下这个API的资料,然后就知道如何用了…………干吗跟小白一样,要示例?[汗]
2017年03月06日 05点03分
@涐吢铱舊囿儚 不同的人思路不同只是学下代码逻辑。
2017年03月06日 05点03分
老大回来了?欢迎经常回来看看
2017年03月06日 05点03分
level 10
写了段应用GetFileAttributesEx()获取大文件字节数的代码,
贴出来大家参考一下。
注意这个 GetFileSize()函数中,我没有判断传入参数是文件还是文件夹,
如果传入的是“文件夹”,它返回的值是它的“目录记录数据区”占用的空间大小,
这个“空间”是不包含它里面的文件、子目录占用空间的。
可以按实际需求,增加几句代码,判断一下是否为“文件夹”。
我的这个函数,返回 -1表示获取失败(比如指定文件不存在、不可访问等)。
我的电脑中目前也没有太大的文件,就用了一个系统镜像文件来测试,
窗口中显示的“结果”数值,跟在“我的电脑”中用“文件属性”看到的文件大小是一致的。
2017年03月06日 06点03分 3
[大拇指]
2017年03月06日 10点03分
你这里是42949.。。。 我用的是21...导致结果不多。谢谢
2017年03月07日 00点03分
level 8
'试了一个20G左右的文件,可用
Option Explicit
Private Sub Command1_Click()
Dim fso, filename, file, filesize
filename = "d:\VirtualBox VMs\c\c.vdi"
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.getfile(filename)
Debug.Print file.Size '21476933632
End Sub
2017年03月06日 07点03分 4
恩对的可以。我是用api 计算少了2呗。负数的处理。 谢谢
2017年03月07日 00点03分
level 1
看看鸽笼,吧友
2017年03月20日 09点03分 5
1