首页 > 解决方案 > 删除NodeMCU Lua中除数组之外的所有文件

问题描述

删除除数组中文件外的所有文件 files = {"init.lua", "client.lua", "config.htm", "server.lua", "update.lua"}

标签: arraysfileluanodemcu

解决方案


文档中所述,您可以使用file.list().

这将返回一个地图file name => file size;所以文件名是表键,您可以使用它。

请记住:

  • Lua 中的表索引速度可以接受
  • 可以通过将值设置为来删除键值对nil

所以我们可以这样做:

local whitelist = {"init.lua", "client.lua", "config.htm", "server.lua", "update.lua"}
local files = file.list()

-- Remove files found in the whitelist
for _, filename in ipairs(whitelist) do
   files[filename] = nil
end

-- Delete the remaining files
for filename in pairs(files) do
   file.remove(filename)
end

推荐阅读