mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-17 15:06:02 +01:00
feat(imports/server): getFilesInDirectory
This commit is contained in:
38
imports/getFilesInDirectory/server.lua
Normal file
38
imports/getFilesInDirectory/server.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
---@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
|
||||
Reference in New Issue
Block a user