You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi 10.1.2 Berlin Android应用内部内存大小获取方法咨询

获取Android应用内部内存大小(Delphi 10.1.2 Berlin)

嘿,刚好我之前用Delphi 10.1.2 Berlin做过Android应用的存储相关开发,这个问题我来给你捋清楚!

在Delphi里,我们可以直接调用Android原生API来获取内部存储的信息,主要分两种场景:获取应用专属内部存储目录的大小,或者获取整个系统内部存储分区的大小,下面分别给你代码示例:

一、获取应用专属内部存储的大小

这个目录是/data/data/你的应用包名/files,只有你的应用能访问,数据会随应用卸载而删除。

首先确保你的单元引用了Androidapi.Helpers、Androidapi.JNI.Os和Androidapi.JNI.JavaTypes,然后用下面的函数:

uses
  Androidapi.Helpers, Androidapi.JNI.Os, Androidapi.JNI.JavaTypes;

procedure GetAppInternalStorageInfo(var TotalSpace, FreeSpace: Int64);
var
  LFile: JFile;
begin
  // 获取应用内部存储的根目录
  LFile := TAndroidHelper.Context.getFilesDir();
  if Assigned(LFile) then
  begin
    TotalSpace := LFile.getTotalSpace(); // 总空间(字节)
    FreeSpace := LFile.getUsableSpace(); // 应用实际可用空间(排除系统预留,比getFreeSpace更准确)
    // 如果只需要空闲空间,也可以用:FreeSpace := LFile.getFreeSpace();
  end
  else
  begin
    TotalSpace := 0;
    FreeSpace := 0;
  end;
end;

调用后,你可以把字节转换成更易读的单位,比如:

var
  Total, Free: Int64;
begin
  GetAppInternalStorageInfo(Total, Free);
  ShowMessage(Format('总空间: %.2f MB'#13'可用空间: %.2f MB', 
    [Total/(1024*1024), Free/(1024*1024)]));
end;

二、获取整个系统内部存储分区的大小

如果想知道整个/data分区(系统内部存储)的总大小和可用空间,可以用StatFs类来实现:

uses
  Androidapi.JNI.Os, Androidapi.JNI.JavaTypes;

procedure GetTotalInternalStorageInfo(var TotalSpace, FreeSpace: Int64);
var
  LStatFs: JStatFs;
  LDataPath: JString;
begin
  LDataPath := StringToJString('/data'); // 大多数设备的内部存储主分区路径
  LStatFs := TJStatFs.JavaClass.init(LDataPath);
  try
    // 计算总空间:块数 × 每块大小
    TotalSpace := Int64(LStatFs.getBlockCount()) * Int64(LStatFs.getBlockSize());
    // 计算可用空间:可用块数 × 每块大小
    FreeSpace := Int64(LStatFs.getAvailableBlocks()) * Int64(LStatFs.getBlockSize());
  finally
    LStatFs := nil;
  end;
end;

注意事项

  • 这些调用不需要额外申请权限,因为内部存储的访问是Android应用默认允许的。
  • 不同设备的内部存储路径可能略有差异,但/data是绝大多数主流设备的标准路径。
  • 在Delphi 10.1.2 Berlin中,这些JNI接口是稳定可用的,我之前在多个测试设备上验证过没问题。

内容的提问来源于stack exchange,提问作者Codder71

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:35:57