开发者社区> jeffjade> 正文

lua跨平台文件夹遍历匹配查找

简介: require"lfs" --[[Desc:在B路径D文件中下 搜寻A路径下的没用到的C类文件;      并且将没用到的B类文件名称打印出来; 设置好路径拖到lua自带编辑器中即可运行之;]] --目标所在路径(A)(eg:png所在路径) PNG_FILE_PAT...
+关注继续查看
require"lfs"

--[[Desc:在B路径D文件中下 搜寻A路径下的没用到的C类文件;
      并且将没用到的B类文件名称打印出来;
设置好路径拖到lua自带编辑器中即可运行之;]]
--目标所在路径(A)(eg:png所在路径) PNG_FILE_PATH = "E:/Resource/images" --目标所寻路径(B)(eg:lua所在路径) LUA_FILE_PATH = "E:/Resource/scripts" --搜寻目标后缀config(C) SEARCH_TARGET = "%.png" --查找目标后缀config(D) FIND_TARGET = "%.lua" local pairs = pairs function findindir (path, wefind, r_table, intofolder, fileType) for file in lfs.dir(path) do if file ~= "." and file ~= ".." then local f = path..'/'..file local fname = file; if string.find(f, wefind) ~= nil then if fileType == "png" then table.insert(r_table, fname) --print(fname); elseif fileType == "lua" then table.insert(r_table, f) --print(f); end end local attr = lfs.attributes (f) assert (type(attr) == "table") if attr.mode == "directory" and intofolder then findindir (f, wefind, r_table, intofolder, fileType) else -- for name, value in pairs(attr) do -- print (name, value) -- end end end end end function isInIt( file,name ) for line in file:lines() do if isContain(line , name) then return true; end end return false; end function isContain( line , str ) return string.find(line , str); end ----[[ local pngFilePath = PNG_FILE_PATH local input_table_png = {} findindir(pngFilePath, SEARCH_TARGET , input_table_png, true, "png") -- "%.png$" print(#input_table_png); --]] ----[[ local luaFilePath = LUA_FILE_PATH local input_table_lua = {} findindir(luaFilePath, FIND_TARGET , input_table_lua, true, "lua") -- "%.lua$" print(#input_table_lua); --]] ----[[ local count = 0; for _,imageName in pairs(input_table_png) do local flag = 0 for _,fileName in pairs(input_table_lua) do local fileInfo = io.open(fileName,"r") if isInIt(fileInfo , imageName) then flag = 1; break; end end if flag == 0 then print("No Exist Image Name Is: "..imageName) count = count + 1; end end print("The File Count is:"..count); ----]]

lua文件lfs库可参见: http://keplerproject.github.io/luafilesystem/license.html

倾城之链 | NICE LINKS DJI Mavic Air

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
查找某文件夹下所有子文件夹内的py文件
import globimport os fp = '/Users/../Desktop'pylist = []def get_py(fp): filelist = glob.glob(os.path.
1279 0
Chrome的插件扩展程序安装目录是什么?在哪个文件夹?
正常情况下,Chrome插件扩展程序的默认安装目录如下: 1.windows xp中chrome插件默认安装目录位置: C:\Documents and Settings\用户名\Local Settings\Application Data\Google\Chrome\User Data\Default\Extensions 2.
14542 0
Total Commander之添加两边同时进行文件夹切换操作
Total Commander最方便之处在于两列文件管理视窗,这样复制备份文件就很方便,但有的时候想人工查看两个具有相同目录结构的文件夹时,比如和FTP上的文件夹对比。如果先切换左边的目录,再切换右边的目录,文件夹多了就很繁琐,很麻烦。 可以这样做,先在工具栏新建一个按钮,然后选择按钮的“命令”为“cm_SyncChangeDir”,描述为“两边窗口同步移到上层文件夹”,序号”2600″
1434 0
跨平台Unicode与UTF8互转代码
参考来源:http://blog.csdn.net/flying8127/article/details/1598521 在原来原基础上,将代码整理,并加强安全性. 并按照WindowsAPI设计, 添加输出缓冲长度探测功能 当OutUTFString为NULL时, 可以进行输出的UTF8字符串...
824 0
《PhoneGap精粹:构建跨平台的移动App》——导读
本节书摘来自异步社区《PhoneGap精粹:构建跨平台的移动App》一书中的目录,作者 【美】John M. Wargo,更多章节内容可以访问云栖社区“异步社区”公众号查看
1156 0
+关注
85
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载