我正在制作一个A2计算程序,它可以输出大量数据.我在本地网络上的硬盘分配大约是50 MB,因此它是测试"无磁盘空间"错误的好选择.
目前,当程序空间不足时,它会在I/O错误112的情况下崩溃.如果文件可能超出可用空间,我想提前警告.我知道文件有多大(平均每条记录24.8字节),所以我需要做的就是找出多少空间是免费的.
当我在网络驱动器上工作时,如果有文件路径\\qmcsan1\Cxxxxx$\filename.csv
,我该如何使用函数DiskFree
来计算可用空间?任何这样的功能也需要处理本地驱动器C:/
.
任何想法都非常感激.
Dav*_*nan 10
一种简单的方法是调用GetDiskFreeSpaceEx
API函数.
不幸的是,这个函数在Delphi Windows单元中被错误地声明,至少它在XE2中.但是在SysUtils中声明的版本是正确的.确保使用该版本!
program FreeDiskSpace;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
Folder = 'C:\';
var
FreeAvailable, TotalSpace: Int64;
begin
if SysUtils.GetDiskFreeSpaceEx(PChar(Folder), FreeAvailable, TotalSpace, nil) then begin
Writeln(TotalSpace div (1024*1024*1024), 'GB total');
Writeln(FreeAvailable div (1024*1024*1024), 'GB free');
end;
end.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4845 次 |
最近记录: |