[代码]Delphi实现获取文件及文件夹大小(支持超过2G的大文件)
2011-07-26 12:58
851 查看
注意函数返回值类型是Int64,如果文件存在则返回文件大小,否则返回0。
由此可以得到获取文件夹大小的函数如下:
参考:
File Size - Get the Size of a File in Bytes using Delphi
http://delphi.about.com/od/delphitips2008/qt/filesize.htm
Technorati 标签: Delphi,FindFirst,nFileSizeHigh
function FileSize(FileName: string): Int64; var sr: TSearchRec; begin if FindFirst(FileName, faAnyFile, sr) = 0 then Result := Int64(sr.FindData.nFileSizeHigh) shl 32 + Int64(sr.FindData.nFileSizeLow) else Result := 0; FindClose(sr); end;
由此可以得到获取文件夹大小的函数如下:
function FolderSize(FolderName: string): Int64; var sr: TSearchRec; begin Result := 0; if RightStr(FolderName, 1) <> '\' then FolderName := FolderName + '\'; if FindFirst(FolderName + '*.* ', faAnyFile, sr) = 0 then repeat if (sr.Name <> '.') and (sr.Name <> '..') then begin Result := Result + FileSize(FolderName + sr.Name); if (sr.Attr and faDirectory) <> 0 then Result := Result + FolderSize(FolderName + sr.Name + '\'); end; until FindNext(sr) <> 0; FindClose(sr); end;
参考:
File Size - Get the Size of a File in Bytes using Delphi
http://delphi.about.com/od/delphitips2008/qt/filesize.htm
Technorati 标签: Delphi,FindFirst,nFileSizeHigh
相关文章推荐
- Linux系统遍历文件夹 获取文件大小的操作(C语言实现)
- MFC,大文件(超过2G)获取文件大小的bug
- 通过jquery获取上传文件名称、类型和大小的实现代码
- 获取文件大小,尤其是超过2G的大文件
- golang简单获取上传文件大小的实现代码
- golang简单获取上传文件大小的实现代码
- 用asp实现的获取文件夹中文件的个数的代码
- Delphi中获取文件夹路径的三种方式 和实现文件复制
- 获取服务器支持文件最大上传大小 (PHP代码函数)
- libcurl获取网络文件大小含命令行和ios代码实现
- 用MFC实现代码获取当前EXE 执行的绝对路径,用于扩展相对路径扩展,以及计算文件大小功能
- Powershell 之批量获取文件大小的实现代码
- linux下获取所有文件夹和文件,支持nfs和xfs(C++实现)
- Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)
- java实现批量修改指定文件夹下所有后缀名的文件为另外后缀名的代码
- [导入]Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)(二)
- C#实现多文件上传,写到文件夹中,获取文件信息以及下载文件和删除文件
- java实现sftp客户端上传文件以及文件夹的功能代码
- python之文件的读写和文件目录以及文件夹的操作实现代码