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

  • chickenby

    chickenby

    2 HAZİRAN 2008
  • Mismag822 - The Card Trick Teacher

    Mismag822 -

    18 EKİM 2008
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013