2015-01-25 2 views

ответ

6

Я использую enumeratorAtURL. Вот код, который показывает пример того, как печатать каталоги в домашнем каталоге пользователя.

if let dirURL = NSURL(fileURLWithPath: NSHomeDirectory()) { 
    let keys = [NSURLIsDirectoryKey, NSURLLocalizedNameKey] 
    let fileManager = NSFileManager.defaultManager() 
    let enumerator = fileManager.enumeratorAtURL(
     dirURL, 
     includingPropertiesForKeys: keys, 
     options: (NSDirectoryEnumerationOptions.SkipsPackageDescendants | 
      NSDirectoryEnumerationOptions.SkipsSubdirectoryDescendants | 
      NSDirectoryEnumerationOptions.SkipsHiddenFiles), 
     errorHandler: {(url, error) -> Bool in 
      return true 
     } 
    ) 
    while let element = enumerator?.nextObject() as? NSURL { 
     var getter: AnyObject? 
     element.getResourceValue(&getter, forKey: NSURLIsDirectoryKey, error: nil) 
     let isDirectory = getter! as Bool 
     element.getResourceValue(&getter, forKey: NSURLLocalizedNameKey, error: nil) 
     let itemName = getter! as String 
     if isDirectory { 
      println("\(itemName) is a directory in \(dirURL.absoluteString)") 
      //do something with element here. 
     } 
    } 
} 
+0

Это, безусловно, должно дать общую идею. Однако он не компилируется в Xcode 6.1.1. –

+0

Спасибо @MartinR, я исправил ошибки компиляции и попробовал это на игровой площадке. Он компилируется и работает сейчас. –

Смежные вопросы