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 lfs = love.filesystem
	local filesTable = lfs.getDirectoryItems(folder)
	for i,v in ipairs(filesTable) do
		local file = folder.."/"..v
		if lfs.isFile(file) then
			fileTree = fileTree.."\n"..file
		elseif lfs.isDirectory(file) then
			fileTree = fileTree.."\n"..file.." (DIR)"
			fileTree = recursiveEnumerate(file, fileTree)
		end
	end
	return fileTree
end
 
function love.draw()
	love.graphics.print(filesString, 0, 0)
end

関連


そのほかの言語