Delphi 获得文件大小的方法
Posted ----我是谁我在哪----
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi 获得文件大小的方法相关的知识,希望对你有一定的参考价值。
Delphi 获得文件大小的方法 大概有这些:
- FileSizeByName(需要引用IdGlobal单元 ,XE版本已取消)
- GetFileSize (use Windows ,仅支持windows)
- FileSize(不能获得正在使用的文件大小)
- FileSeek
- TFileStream.Size
1、FileSizeByName(需要引用IdGlobal单元,XE版本已取消) if OpenDialog1.Execute then begin ShowMessage(IntToStr(FileSizeByName(OpenDialog1.Filename))); end; 2、GetFileSize (use Windows ,仅支持windows) var FileHandle:integer; begin if OpenDialog1.Execute then begin FileHandle := FileOpen(OpenDialog1.FileName, 0); ShowMessage(IntToStr(GetFileSize(FileHandle, nil))); FileClose(FileHandle); end; end; 3、FileSize(不能获得正在使用的文件大小) var f: file; begin if OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.FileName); Reset(f, 1); ShowMessage(IntToStr(FileSize(f))); CloseFile(f); end; end; 4、FileSeek var FileHandle:integer; begin if OpenDialog1.Execute then begin FileHandle := FileOpen(OpenDialog1.FileName, 0); ShowMessage(IntToStr(FileSeek(FileHandle,0,2))); FileClose(FileHandle); end; end; 5、TFileStream.Size var FS: TFileStream; begin if OpenDialog1.Execute then begin FS := TFileStream.Create(OpenDialog1.FileName, fmShareDenyNone); ShowMessage(IntToStr(FS.Size)); FS.Free; end; end;
递归统计文件夹大小
递归统计文件夹大小
-
创建键盘录入对象Scanner
-
定义字符串接收用户输入的文件夹路径
-
根据文件夹路径创建文件对象
-
定义一个方法calculate用来计算指定文件夹的大小,接收文件参数,返回long类型数值表示文件夹的大小。
-
调用calculate方法传入文件夹对象,在该方法内部获得文件夹中所有文件,得到一个文件数组,定义一个变 量size累加每一个文件的大小,遍历文件数组,判断是否是文件,如果是文件则获得文件大小并累加到变量 size中,如果是文件夹,继续递归调用当前方法。
package com.test.Test02;
import java.io.File;
public class Test04 {
public static void main(String[] args) {
//获取一个文件夹大小并输出到控制台
long l = calculate(new File("E:/abc"));
System.out.println("l = " + l);
//l = 52925438
// 52929534
}
private static long calculate(File dir){
//定义变量累积每一个文件的大小
long size = 0;
File[] files = dir.listFiles();
for (File file : files) {
if(file.isFile()){
//是文件
size += file.length();
}else {
//是文件夹
size += calculate(file);
}
}
return size;
}
}
自己瞎捉摸出来的
package com.test.Test02;
import java.io.File;
public class Test05 {
public static void main(String[] args) {
addUp(new File("E:/abc"));
}
private static long size = 0;
private static void addUp(File file) {
if(file.isDirectory()){
File[] files = file.listFiles();
for (File f : files) {
addUp(f);
}
}
//不是文件夹,计算大小
size += file.length();
System.out.println("size = " + size);
}
}
以上是关于Delphi 获得文件大小的方法的主要内容,如果未能解决你的问题,请参考以下文章