ファイルまたはディレクトリを検索 (file.find)
宣言
ファイル一覧 = file.find(マッチパターン)
パラメータ
- マッチパターン
テーブル型 | 文字列型
戻り値
- ファイル一覧
テーブル型。一致したファイル名の一覧を返します
説明
ワイルドカードパターンまたは Lua の厳密一致を使用してファイルやディレクトリを検索し、一致したファイル名の一覧を返します。
照合パターンが文字列の場合は、ワイルドカードパターンで照合します。使用できるワイルドカードは *、?、[...] の三種類のみです。
照合パターンがテーブルの場合は、Lua の厳密一致を使用します。
この関数は 20250416 以降のバージョンで使用できます
例
シンプルなワイルドカードパターン
-- シンプルなワイルドカードパターン。基本ワイルドカードは * ? [...] の三種類のみをサポート
-- * は任意の長さの文字列に一致します(長さは 0 でもかまいません)
-- ? は任意の一文字に一致します
-- [...] は角括弧内の任意の一文字に一致します。たとえば [abc]haha.txt は ahaha.txt bhaha.txt chaha.txt のいずれにも一致します
-- [!...] は角括弧内にない任意の一文字に一致します。たとえば [!abc]haha.txt は ahaha.txt bhaha.txt chaha.txt には一致せず、xhaha.txt などの他の一文字の場合に一致します
local results = file.find("/private/var/mobile/Containers/Shared/AppGroup/*/Library/Preferences/*.plist")
厳密一致パターン
-- 厳密な Lua パターンマッチング
-- 厳密一致では Lua テーブルをセグメントごとに構成してマッチパターンを作成します。文字列はリテラルとして判定され、真偽値を返す関数を使用して現在のセグメントが有効かどうかを判定できます
local results = file.find{ --<--- ここが波括弧であることに注意
"/private/var/mobile/Containers/Shared/AppGroup/", -- 通常の文字列にはパターンマッチングは不要です
function(s) return s:match("^[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+$") end, -- 関数を使用して現在のセグメントを照合します
"/Library/Preferences/",
function(s) return s:match("%.plist$") end, -- 関数を使用して現在のセグメントを照合します
}
-- 厳密な Lua パターンマッチングでは、単一の文字列を波括弧で囲み、簡易パターンマッチング関数を構成することもできます
local results = file.find{ --<--- ここが波括弧であることに注意
"/private/var/mobile/Containers/Shared/AppGroup/", -- 通常の文字列にはパターンマッチングは不要です
{"^[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+%-[A-F0-9]+$"}, -- 単一の文字列をテーブルで囲むと、パターンマッチングが必要なセグメントであることを表します
"/Library/Preferences/", -- 通常の文字列にはパターンマッチングは不要です
{"%.plist$"}, -- 単一の文字列をテーブルで囲むと、パターンマッチングが必要なセグメントであることを表します
}