본문 바로가기

Swift

특정 디렉토리 아래의 모든 파일 목록 가져오기


XCode 도움말에서 이런 코드를 발견.



        let directoryURL = NSBundle.mainBundle().bundleURL
        let localFileManager = NSFileManager()
        
        let resourceKeys = [NSURLNameKey, NSURLIsDirectoryKey]
        let directoryEnumerator = localFileManager.enumeratorAtURL(directoryURL, includingPropertiesForKeys: resourceKeys, options: [.SkipsHiddenFiles], errorHandler: nil)!
        
        var fileURLs: [NSURL] = []
        for case let fileURL as NSURL in directoryEnumerator {
            guard let resourceValues = try? fileURL.resourceValuesForKeys(resourceKeys),
                let isDirectory = resourceValues[NSURLIsDirectoryKey] as? Bool,
                let name = resourceValues[NSURLNameKey] as? String
                else {
                    continue
            }
            
            if isDirectory {
                if name == "_extras" {
                    directoryEnumerator.skipDescendants()
                }
            } else {
                fileURLs.append(fileURL)
            }
        }
        
        print(fileURLs)