Unixには、ファイルグロビング操作を実行できるライブラリがあります。関数と型はと呼ばれるヘッダーで宣言されているglob.h
ので、必要に#include
なります。ターミナルを開くか、入力してglobのmanページを開くとman 3 glob
、関数の使用に必要なすべての情報が得られます。
以下は、グロビングパターンに一致するファイルを配列に挿入する方法の例です。このglob
関数を使用する場合、いくつかの点に注意する必要があります。
- デフォルトでは、
glob
関数は現在の作業ディレクトリでファイルを検索します。別のディレクトリを検索するには、例で行ったように、ディレクトリ名をグロビングパターンの前に付加して、内のすべてのファイルを取得する必要があります/bin
。
- 構造を使い終わったら
glob
、呼び出しによって割り当てられたメモリをクリーンアップするglobfree
必要があります。
私の例では、デフォルトのオプションを使用し、エラーコールバックは使用しません。manページには、使用したいものがあれば、すべてのオプションが記載されています。上記のコードを使用する場合は、カテゴリNSArray
またはそのようなものとして追加することをお勧めします。
NSMutableArray* files = [NSMutableArray array];
glob_t gt;
char* pattern = "/bin/*";
if (glob(pattern, 0, NULL, >) == 0) {
int i;
for (i=0; i<gt.gl_matchc; i++) {
[files addObject: [NSString stringWithCString: gt.gl_pathv[i]]];
}
}
globfree(>);
return [NSArray arrayWithArray: files];
編集:上記のコードをNSArray + Globbingというカテゴリに含むgithubの要旨を作成しました。