PathListDir: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
|  (Add note about listing current & other resource directories) | No edit summary | ||
| Line 7: | Line 7: | ||
| {{Note| | {{Note| | ||
| * Listing other resource directory can be done by passing '''":resourceName/."''' | * Listing other resource directory can be done by passing '''":resourceName/."''' | ||
| * For listing current resource (the one where code is executed), you can pass either '''""''' or '''": | * For listing current resource (the one where code is executed), you can pass either '''""''' or '''":currentResourceName/."''' | ||
| }} | }} | ||
Revision as of 21:49, 20 April 2025
Syntax
table pathListDir ( string path )
OOP Syntax Help! I don't understand this!
- Method: path:listDir(...)
Required Arguments
- path: A string containing a path you want to get entries from
Returns
Returns table with all entries in a specified directory.
Example
Click to collapse [-]
ClientThis example loads all models from a certain directory
-- from https://gist.github.com/kgriffs/124aae3ac80eefe57199451b823c24ec
local function stringEndsWith(str, ending)
    return ending == "" or str:sub(-#ending) == ending
end
-- get all files from a models directory that exists in the resource root folder (resources/ResourceName)
-- and load them into the game
addEventHandler('onClientResourceStart', resourceRoot, function()
    local entries = pathListDir('models') or {}
    for _, fileOrFolder in ipairs(entries) do
        if pathIsFile(fileOrFolder) then
            local file = fileOrFolder
            local modelName = tonumber(file:sub(1, -5))
            if modelName then
                -- the full path to the file
                local filePath = 'models/'..file
                if stringEndsWith(file, '.col') then
                    local colData = engineLoadCOL(filePath)
                    if colData then
                        engineReplaceCOL(colData, modelName)
                    end
                end
                if stringEndsWith(file, '.txd') then
                    local txdData = engineLoadTXD(filePath)
                    if txdData then
                        engineImportTXD(txdData, modelName)
                    end
                end
                if stringEndsWith(file, '.dff') then
                    local dffData = engineLoadDFF(filePath)
                    if dffData then
                        engineReplaceModel(dffData, modelName)
                    end
                end
            end
        end
    end
end, false)
See Also