love.filesystem.getDirectoryItems (日本語)

LÖVE 0.9.0 から使用可能
love.filesystem.enumerate から名称変更。


指定されたパスのファイルおよびサブディレクトリの名前をテーブルで返します。テーブルに対しては一切の並べ換えを行いません。順列はバラバラです。

パスとしてゲームおよびセーブ・ディレクトリとして存在するものが関数に渡された場合は、双方のファイルおよびディレクトリの場所の一覧を返します。

関数

概要

files = love.filesystem.getDirectoryItems( dir )

引数

string dir
ディレクトリ。

返値

table files
sequence は全てのファイルおよびサブディレクトリの名前を文字列として返したものです。

関数

LÖVE 0.9.1 まで使用可能でしたが LÖVE 0.10.0 で廃止されました
この異形は以降のバージョンでは非対応です。

概要

files = love.filesystem.getDirectoryItems( dir, callback )

引数

string dir
ディレクトリ。
function callback
ディレクトリにある各ファイルおよびフォルダから呼ばれる関数です。ファイル名は引数として関数に渡されます。

返値

table files
sequence は全てのファイルおよびサブディレクトリの名前を文字列として返したものです。

用例

簡単な用例

local dir = ""
-- 完全な LOVE のファイルがあるパスであると仮定します (この場合は最低でも main.lua が存在するはずです)。
local files = love.filesystem.getDirectoryItems(dir)
for k, file in ipairs(files) do
	print(k .. ". " .. file) -- "1. main.lua" といったものが出力されます。
end

すべてのファイルとフォルダ内のフォルダ、さらにそのサブフォルダを再帰的に検索して表示します。

function love.load()
	filesString = recursiveEnumerate("", "")
end

-- この関数は全てのサブディレクトリにあるフォルダおよびファイルといった
-- 全てのファイルをファイルツリーとして表した文字列で返します。
function recursiveEnumerate(folder, fileTree)
	local filesTable = love.filesystem.getDirectoryItems(folder)
	for i,v in ipairs(filesTable) do
		local file = folder.."/"..v
		local info = love.filesystem.getInfo(file)
		if info then
			if info.type == "file" then
				fileTree = fileTree.."\n"..file
			elseif info.type == "directory" then
				fileTree = fileTree.."\n"..file.." (DIR)"
				fileTree = recursiveEnumerate(file, fileTree)
			end
		end
	end
	return fileTree
end
	
function love.draw()
	love.graphics.print(filesString, 0, 0)
end

関連


そのほかの言語