Unix, sizin için dosya globbing işlemleri yapabilen bir kütüphaneye sahiptir. İşlevler ve türler adlı bir başlıkta bildirildiğinden, buna glob.h
ihtiyacınız olacak #include
. Bir terminal açarsanız ve glob için man sayfasını yazarak man 3 glob
, işlevleri kullanmak için bilmeniz gereken tüm bilgileri alırsınız.
Aşağıda, bir globbing deseniyle eşleşen dosyaları bir diziye nasıl yerleştirebileceğinize ilişkin bir örnek verilmiştir. glob
İşlevi kullanırken aklınızda bulundurmanız gereken birkaç şey vardır.
- Varsayılan olarak,
glob
işlev geçerli çalışma dizinindeki dosyaları arar. Başka bir dizini aramak için, tüm dosyaları almak için örneğimde yaptığım gibi dizin adını globbing desenine eklemeniz gerekir /bin
.
- Yapı ile işiniz bittiğinde
glob
arayarak ayrılan belleği temizlemek sizin sorumluluğunuzdadır globfree
.
Örneğimde varsayılan seçenekleri kullanıyorum ve hata geri çağırma yok. Man sayfası, orada kullanmak istediğiniz bir şey olması durumunda tüm seçenekleri kapsar. Yukarıdaki kodu kullanacaksanız, bunu bir kategori NSArray
veya buna benzer bir şey olarak eklemenizi öneririm .
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];
Düzenleme: NSArray + Globbing adlı kategoride yukarıdaki kodu içeren github üzerinde bir özü oluşturdum .