1

从我的 Android 应用程序中,我试图使用内部存储。换句话说,我需要在应用信息中显示存储值(检查屏幕截图)。我尝试了下面的代码,但我得到的价值低于 appinfo 中显示的存储价值。请帮助我解决我所缺少的。

存储映像

   public void GetOccupyMemory() {
    total_usage = getFileDataSize() + getFolderSize();
}

public long getFileDataSize() {
    long size = 0;
    File filedir = getActivity().getFilesDir().getParentFile();
    for (File fdir : filedir.listFiles()) {
        if (fdir.isDirectory()) {
            long dirfiles = getSize(fdir);
            size += dirfiles;
        } else {
            size += fdir.length();
        }
    }
    return size / (1024 * 1024);
}

public long getFolderSize() {
    try {
        long apsize = new File(getActivity().getPackageManager().getApplicationInfo(getActivity().getPackageName(), 0).sourceDir).length();
        return apsize / (1024 * 1024);
    } catch (Exception e) {
        return 0;
    }
}
4

0 回答 0