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
 |