我有一些需要处理的大文件,并且想向用户说明文件大小,因为处理可能需要很长时间。
我正在使用 David Heffernan 的函数(非常感谢 David)来获取尺寸,而且效果很好。
function GetFileSize3(const FileName: string): Int64;
var
fad: TWin32FileAttributeData;
begin
if not GetFileAttributesEx(PChar(FileName), GetFileExInfoStandard, @fad) then
RaiseLastOSError;
Int64Rec(Result).Lo := fad.nFileSizeLow;
Int64Rec(Result).Hi := fad.nFileSizeHigh;
end;
然后,我将其转换为字符串并将其和其他字符串存储在 StringList 中以供以后使用。
当我尝试将其转换回 Int64 值 (myInt64:=StrToInt(slSize[j])) 时,我收到一个错误,“xxx 不是整数”或非常接近该错误的东西。
我想我应该使用带有文件名的记录数组:字符串;大小:Int64;等在记录中,而不是使用 StringLists。事后诸葛亮,现在需要重新编写才能使用记录数组。
我需要一种作弊者的方法来将非常大的 StringList 值转换回 Int64,以用于将超出正常 StrToInt( 导致错误的函数的少数文件。
有人愿意救我的培根吗?谢谢你。