アットウィキロゴ

playdate.file

playdate.file 以下のAPIは、ファイルシステムに対する操作(作成、削除、検索など)を行うスタティック関数と、実際に開いたファイルを読み書きするための fileオブジェクト(インスタンスメソッド) に大別されます。


1. 定数 (File Access Modes)

ファイルを open() する際に指定するアクセスモードの定数です。
playdate.file.kFileRead
読み取り専用モード(デフォルト)
playdate.file.kFileWrite
書き込みモード(ファイルが存在する場合は上書き)
playdate.file.kFileAppend
追記モード(ファイルの末尾に書き込み)

2. スタティック関数 (Static Functions)

playdate.file.* の形で直接呼び出す、ファイルやディレクトリの操作関数です。
playdate.file.open(path, [mode])
指定した path のファイルを開き、fileオブジェクト を返します。mode には上記の定数を指定します。
失敗した場合は nil とエラーメッセージを返します。
playdate.file.listFiles([path])
指定したディレクトリ(省略時はルートディレクトリ /)に存在するファイルとフォルダの名前を文字列の配列(テーブル)で返します。
フォルダ名には末尾に / が付きます。
playdate.file.exists(path)
指定したパスにファイルまたはディレクトリが存在するかどうかを真偽値(boolean)で返します。
playdate.file.isdir(path)
指定したパスがディレクトリ(フォルダ)であるかどうかを真偽値で返します。
playdate.file.mkdir(path)
指定したパスに新しいディレクトリを作成します。
成功すれば true、失敗時は false とエラーメッセージを返します。
playdate.file.delete(path, [recursive])
指定したファイルまたはディレクトリを削除します。
recursive を true にすると、中身が入っているディレクトリも再帰的に削除します。
playdate.file.getSize(path)
指定したファイルのサイズをバイト数(整数)で返します。
playdate.file.modtime(path)
ファイルの最終更新日時を表すテーブル(year, month, day, hour, minute, second などのフィールドを持つ)を返します。
playdate.file.rename(path, newPath)
ファイルまたはディレクトリの名前(パス)を newPath に変更します。
playdate.file.load(path, [env])
指定したパスのLuaスクリプトファイルをコンパイルし、実行可能な関数として返します(実行はしません)。
playdate.file.run(path, [env])
指定したパスのLuaスクリプトファイルを読み込み、即座に実行します。

3. fileオブジェクト (File Object Methods)

playdate.file.open() によって生成されたファイルインスタンスに対して呼び出すメソッドです(コロン : を使用します)。
file:read([numberOfBytes])
ファイルから指定したバイト数だけ文字列として読み込みます。numberOfBytes を省略した場合は、ファイルの末尾まで全て読み込みます。
file:readline()
ファイルから1行分を読み込んで返します。改行コード(\n)も文字列に含まれます。
file:write(string)
ファイルに文字列を書き込みます(kFileWrite または kFileAppend モードで開かれている必要があります)。
file:flush()
内部バッファに溜まっている書き込みデータを、強制的にストレージに書き出します(保存を確定させます)。
file:seek(offset, [whence])
ファイルの読み書きを行う位置(カーソル)を移動します。offset はバイト数です。
file:tell()
現在のファイルの読み書き位置(ファイルの先頭からのバイト数)を整数で返します。
file:close()
ファイルを閉じます。ファイル操作が終わったら、メモリリークやデータの破損を防ぐために必ず呼び出す必要があります。

使用例

-- ファイルへの書き込み
local file = playdate.file.open("save.txt", playdate.file.kFileWrite)
if file then
    file:write("Score: 100\n")
    file:close()
end
 
-- ファイルの読み込み
if playdate.file.exists("save.txt") then
    local file = playdate.file.open("save.txt", playdate.file.kFileRead)
    if file then
        local content = file:read()
        print(content)
        file:close()
    end
end

関連ページ

最終更新:2026年07月01日 08:58