forked from Simnation/Main
46 lines
1.1 KiB
Lua
46 lines
1.1 KiB
Lua
--[[
|
|
https://github.com/overextended/ox_lib
|
|
|
|
This file is licensed under LGPL-3.0 or higher <https://www.gnu.org/licenses/lgpl-3.0.en.html>
|
|
|
|
Copyright © 2025 Linden <https://github.com/thelindat>
|
|
]]
|
|
|
|
---@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
|