| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2449 人关注过本帖
标题:vfp如何准确获取硬盘总容量、已用容量或剩余容量
只看楼主 加入收藏
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
vfp如何准确获取硬盘总容量、已用容量或剩余容量
如标题!

我用系统自带的函数返回数据有出入,diskspace('d:',1)返回D盘总容量,diskspace('d:',2)返回D盘剩余容量,获取的D盘已用容量与实际有出入,不一致,请问如何能得到精确数据?


请各位大神指导!谢谢!
搜索更多相关主题的帖子: vfp 获取 硬盘 容量 返回 
2018-07-30 17:50
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


图片上标注的是扫描结束时的显示的最终百分比。很郁闷!

进度是:(当前扫描到的文件大小总和/硬盘已用容量)*100%

扫描到的文件大小总和与操作系统文件夹查看属性看到的大小是一致的,但用diskspace()返回的数据是不准确的。

郁闷!请帮忙看看。谢谢!
2018-07-30 18:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
可能是检测程序不同步,两次检测之间磁盘数据有变化。
用API试试:
DECLARE LONG GetDiskFreeSpace IN Kernel32 STRING@, LONG@, LONG@, LONG@, LONG@
cRootPathName = "C:"
nSectorsPerCluster = 0
nBytesPerSector = 0
nNumberOfFreeClusters = 0
nTotalNumberOfClusters = 0
GetDiskFreeSpace(@cRootPathName, @nSectorsPerCluster, @nBytesPerSector,;
    @nNumberOfFreeClusters, @nTotalNumberOfClusters)
? cRootPathName
? "已用空间: "+PADL((nTotalNumberOfClusters-nNumberOfFreeClusters)*nSectorsPerCluster*nBytesPerSector,20," ")
? "可用空间: "+PADL(nNumberOfFreeClusters*nSectorsPerCluster*nBytesPerSector,20," ")
? "---------------------------------------------"
? "磁盘容量: "+PADL(nTotalNumberOfClusters*nSectorsPerCluster*nBytesPerSector,20," ")
2018-07-30 21:15
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:10 
Clear
FSO=CreateObject("Scripting.FileSystemObject")
colDrives=FSO.Drives
For Each oBjDrive In colDrives
    If oBjDrive.IsReady
        ? oBjDrive.DriveLetter  && 驱动器名称
        ? Transform(Int(oBjDrive.TotalSize/(1024*1024*1024))) && 各驱动器总容量(GB)
        ? Transform(int(objDrive.FreeSpace/(1024*1024*1024))) && 各驱动器剩余容量(GB)
    EndIf
EndFor

坚守VFP最后的阵地
2018-07-30 21:19
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
收藏
得分:0 
都很准确!谢谢两位版主!

就兼容性和内存占用方面而言,API和FSO哪个方式更好些?谢谢!

[此贴子已经被作者于2018-7-31 08:43编辑过]

2018-07-31 08:27
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


这是用FSO的结果!
2018-07-31 12:36
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1733
专家分:3329
注 册:2012-2-29
收藏
得分:0 
谢谢各位,学习啦!
2018-07-31 20:20
快速回复:vfp如何准确获取硬盘总容量、已用容量或剩余容量
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048556 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved