39 lines
947 B
Lua
39 lines
947 B
Lua
---@param path string
|
|
---@param pattern string
|
|
---@return table string[]
|
|
---@return integer fileCount
|
|
function lib.getFilesInDirectory(path, pattern)
|
|
local resource = cache.resource
|
|
|
|
if path:find('^@') then
|
|
resource = path:gsub('^@(.-)/.+', '%1')
|
|
path = path:sub(#resource + 3)
|
|
end
|
|
|
|
local files = {}
|
|
local fileCount = 0
|
|
local windows = string.match(os.getenv('OS') or '', 'Windows')
|
|
local command = ('%s%s%s'):format(
|
|
windows and 'dir "' or 'ls "',
|
|
(GetResourcePath(resource):gsub('//', '/') .. '/' .. path):gsub('\\', '/'),
|
|
windows and '/" /b' or '/"'
|
|
)
|
|
|
|
local dir = io.popen(command)
|
|
|
|
if dir then
|
|
for line in dir:lines() do
|
|
if line:match(pattern) then
|
|
fileCount += 1
|
|
files[fileCount] = line
|
|
end
|
|
end
|
|
|
|
dir:close()
|
|
end
|
|
|
|
return files, fileCount
|
|
end
|
|
|
|
return lib.getFilesInDirectory
|