SORU
31 Ocak 2009, CUMARTESİ


Bir topak ile bir dizindeki dosyaların listesini almak

Saçma sapan bir şeyden belirli bir dizin için bir topak ile dosyaların listesini almak için bir yol bulamıyorum.

Şu anda çizgisinde bir şey başıma kaldı:

NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
NSArray *dirContents = [[NSFileManager defaultManager] 
                        directoryContentsAtPath:bundleRoot];

..ve bu berbat bir şey istemiyorum şeyler, dışarı sıyırma sonra. Ama gerçekten arama yapabilmek için istediğim bir şey için "foo.*"yerine tüm dizin istiyor, ama böyle bir şey bulabilmiş değilim. jpg

Nasıl yapıyorsun bunu?

CEVAP
25 Mayıs 2009, PAZARTESİ


Bu oldukça kolay NSPredicate yardımı ile, yani elde edebilirsiniz:

NSString *bundleRoot = [[NSBundle mainBundle] bundlePath];
NSFileManager *fm = [NSFileManager defaultManager];
NSArray *dirContents = [fm contentsOfDirectoryAtPath:bundleRoot error:nil];
NSPredicate *fltr = [NSPredicate predicateWithFormat:@"self ENDSWITH '.jpg'"];
NSArray *onlyJPGs = [dirContents filteredArrayUsingPredicate:fltr];

Eğer NSURL ile yerine yapmanız gereken bu gibi görünüyor:

NSURL *bundleRoot = [[NSBundle mainBundle] bundleURL];
NSArray * dirContents = 
      [fm contentsOfDirectoryAtURL:bundleRoot
        includingPropertiesForKeys:@[] 
                           options:NSDirectoryEnumerationSkipsHiddenFiles
                             error:nil];
NSPredicate * fltr = [NSPredicate predicateWithFormat:@"pathExtension='jpg'"];
NSArray * onlyJPGs = [dirContents filteredArrayUsingPredicate:fltr];

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • After Effects Tutorials w/ Mikey

    After Effect

    24 HAZİRAN 2009
  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • Wronchi Animation

    Wronchi Anim

    9 Mayıs 2011