directory_get_entries
指定した条件を満たすファイルおよびディレクトリへのパスのリストを返します。
定義
名前空間: Alice.IO
アセンブリ: Losetta.Runtime.dll
ソースコード: Alice.IO.cs
directory_get_entries(string)
指定したディレクトリ内のファイルおよびディレクトリへのパスのリストを返します。
引数 | |
---|---|
path |
検索するディレクトリへのパス |
戻り値 | |
---|---|
string[] |
指定したディレクトリ内のファイルおよびディレクトリへのパスの配列。ただし、条件に一致するファイルエントリが見つからない場合は空の配列 |
対応 | |
---|---|
AliceScript | |
AliceSister | |
Losetta |
directory_get_entries(string,string)
指定したディレクトリ内の指定したパターンに一致するファイルおよびディレクトリへのパスのリストを返します。
引数 | |
---|---|
path |
検索するディレクトリへのパス |
pattern |
見つかったファイルの名前と比較するパターン。ワイルドカードを使用できますが、正規表現は使用できません |
戻り値 | |
---|---|
string[] |
指定したディレクトリ内のファイルおよびディレクトリへのパスの配列。ただし、条件に一致するファイルエントリが見つからない場合は空の配列 |
対応 | |
---|---|
AliceScript | |
AliceSister | |
Losetta |
directory_get_entries(string,string,bool)
指定したディレクトリ内の指定したパターンに一致するファイルおよびディレクトリへのパスのリストを返します。
namespace Alice.IO;
public string[] directory_get_entries(string path, string pattern, bool searchSubDir);
引数 | |
---|---|
path |
検索するディレクトリへのパス |
pattern |
見つかったファイルの名前と比較するパターン。ワイルドカードを使用できますが、正規表現は使用できません |
searchSubDir |
すべてのサブディレクトリを含める場合はtrue 、path で指定されたディレクトリのみを検索する場合はfalse |
戻り値 | |
---|---|
string[] |
指定したディレクトリ内のファイルおよびディレクトリへのパスの配列。ただし、条件に一致するファイルエントリが見つからない場合は空の配列 |
対応 | |
---|---|
AliceScript | |
AliceSister | |
Losetta |
directory_get_entries(string,string,bool,bool,bool,bool,bool,number,number)
指定したディレクトリ内の指定したパターンに一致するファイルおよびディレクトリへのパスのリストを返します。
namespace Alice.IO;
public string[] directory_get_entries(string path, string pattern, bool searchSubDir, bool? matchCasing = null, bool matchByWin32Style = false, bool returnSpecialDirectories = false, bool ignoreInaccessible = true, number maxRecursionDepth = 2147483647, number bufferSize = 0);
引数 | |
---|---|
path |
検索するディレクトリへのパス |
pattern |
見つかったファイルの名前と比較するパターン。ワイルドカードを使用できますが、正規表現は使用できません |
searchSubDir |
すべてのサブディレクトリを含める場合はtrue 、path で指定されたディレクトリのみを検索する場合はfalse |
matchCasing |
pattern を大文字と小文字を区別して比較する場合はtrue 、区別しない場合はfalse 、実行しているプラットフォームの既定値を使用する場合はnull 。この引数の既定値はnull です。 |
matchByWin32Style |
Windowsスタイルの複雑なパターンマッチを使用する場合はtrue 、それ以外の場合はfalse 。この引数の既定値はfalse です。 |
returnSpecialDirectories |
検索結果に. と.. を含める場合はtrue 、それ以外の場合はfalse 。この引数の既定値はfalse です。 |
ignoreInaccessible |
アクセスが拒否されたときに例外を発生させず検索を続ける場合はtrue 、それ以外の場合はfalse 。この引数の既定値はtrue です。 |
maxRecursionDepth |
再帰的にサブディレクトリを探索するとき、探索する最大深さ。この引数の既定値および最大値は2147483647 です。 |
bufferSize |
ディレクトリの探索に使用する既定のバッファサイズ(バイト単位)。この引数の既定値は0 です。 |
戻り値 | |
---|---|
string[] |
指定したディレクトリ内のファイルおよびディレクトリへのパスの配列。ただし、条件に一致するファイルエントリが見つからない場合は空の配列 |
対応 | |
---|---|
AliceScript | |
AliceSister | |
Losetta |
この関数はAliceSisterでは実装されていません。
実装されていない環境では0x034 NOT_IMPLEMENTED
例外がスローされます。
説明
path
には、相対パスと絶対パスのどちらでも指定できます。
相対パスを指定した場合、カレントディレクトリからの相対パスとして解釈します。
パスの大文字と小文字の区別は、環境およびファイルシステムに依存します。たとえば、NTFSでは大文字と小文字は区別されませんが、LFSでは大文字と小文字が区別されます。
pattern
にはリテラルとワイルドカードの組み合わせを使用できます。使用できるワイルドカードは以下の通りです。
パターン | 意味 |
---|---|
? |
任意の一文字 |
* |
0個以上の任意の文字 |
上記のワイルドカード以外の文字は、すべてリテラル文字です。
たとえば、dir_*
はdir_
から始まるすべてのディレクトリを検索します。
matchByWin32Style
をtrue
に設定すると、この関数はWin32スタイルの方式を使用してワイルドカードを照合するようになります。このとき、すでに上記の表で示した*
、?
に加えて、<
、>
、"
もワイルドカードとみなされます。また、pattern
を*.*
にしていすると、ファイル名にピリオドを含むかによらずすべてのファイルにマッチします。(false
の場合はピリオドを含まないファイルにはマッチしません)
この関数は、directory_getFilesとは異なり、探索中にあるファイルまたはディレクトリへのアクセスが拒否されたときに例外を発生させずに探索を続行します。ignoreInaccessible
をfalse
にすることで、アクセスが拒否されたときに例外を発生するように設定できます。
maxRecursionDepth
に0
を指定すると、searchSubDir
の値によらずサブディレクトリを再帰的に検索しないようになります。
一部のプラットフォームでは、探索のために十分な領域をもつバッファーが必要です。bufferSize
の値を大きくすると、探索中のパフォーマンスが向上する可能性があります。一般に、標準的なバッファーサイズは4096
で、大きいとされるサイズは16384
です。ただし、bufferSize
でバッファーサイズを指定したとしても、その値がすべてのプラットフォームで使用されるとは限りません。現在スクリプトが実行されているプラットフォーム上のAPIで、バッファーサイズが指定できない場合や結果を取得するには小さすぎる場合には、この値は使用されません。
AliceSisterでの特殊な挙動
pattern
にアスタリスク(*
)を使ったワイルドカードを使用し、かつ3文字の拡張子(*.txt
など)を指定すると、この関数は、指定した拡張子で始まる拡張子を持つファイルも返します。たとえば、*.xls
というパターンでは、book.xls
とbook.xlsx
の両方を返します。
これは、Windowsがユーザーに見える「長いファイル名」と別に8.3形式と呼ばれる「短いファイル名」を持たせていることに由来します。Windowsではファイル名が8文字を超えたり、拡張子が3文字を超えるファイルについて、通常のファイル名と別に短いファイル名を自動的に付与します。
AliceSisterでのこの関数は、長いファイル名と8.3形式の短いファイル名の両方をチェックするため、8.3形式ではないファイル名に意図せずマッチしてしまう可能性があります。次の表に、AliceSisterとそれ以外の実装でマッチするファイルを示します。
ディレクトリ内のファイル | 検索パターン | Losettaでの戻り値 | AliceSisterでの戻り値 |
---|---|---|---|
file.ai、file.aif | *.ai | file.ai | file.ai |
book.xls、book.xlsx | *.xls | book.xls | book.xls、book.xlsx |
file.ai、file.aif | ????.ai | file.ai | file.ai |
book.xls、book.xlsx | ????.xls | book.xls | book.xls |
AliceScriptおよびAliceSisterでは、この問題は発生しません。
例
次の例では、test
というディレクトリ内に存在するすべてのファイルとディレクトリ