杰出兽的小宇宙

Lua 不使用 lfs 库获取文件夹大小

Lua 只能获取单个文件大小,且常规获取文件夹属性、大小的方式通常需要 require lfs

许多时候要检测文件夹大小但不能使用 lfs 比如 AndroLua 和基于它的 FusionApp 等

以下代码

import"java.io.File"--Java 文件接口库
import "android.text.format.Formatter"-- 格式化大小库
function FormatFileSize(size)--格式化文件大小
  return Formatter.formatFileSize(activity, size)
end
function GetFolderSize(path)--计算文件夹大小
  local ls = File(path).listFiles()
  if ls then
    local fileList = luajava.astable( ls )--格式
    Size=0
    for i,v in ipairs(fileList) do--循环遍历文件夹
      if v.isDirectory() then --是目录
        local v_=tostring(v)..'/'--套娃
        Size=Size+GetFolderSize(v_)
      else
        Size=Size+File(tostring(v)).length()--获取
      end
    end
  else
    Size=0--空目录大小为0
  end
  return Size
end

--使用示例
print(FormatFileSize(GetFolderSize('/sdcard/Download/')))

留言

textsms
account_circle
email

杰出兽的小宇宙

Lua 不使用 lfs 库获取文件夹大小
Lua 只能获取单个文件大小,且常规获取文件夹属性、大小的方式通常需要 require lfs 许多时候要检测文件夹大小但不能使用 lfs 比如 AndroLua 和基于它的 FusionApp 等 以下代码 …
扫描二维码继续阅读
2021-09-06