Swift:过滤相关文件/忽略app包的子文件夹

时间:2016-08-30 07:25:26

标签: swift file copy directory

我想从文件夹中复制一些文件。所以我扫描该文件夹中的文件。但是我得到了所有细节,比如应用程序的“contents”文件夹和下面的所有文件。如果我复制一个应用程序,所有归属的东西也将被复制。所以我喜欢只获取根文件。在任何地方都有选择吗?

这是查询代码:

func getFolderEnumerator(directoryUrl:NSURL) -> NSDirectoryEnumerator?
{
    let fileManger = NSFileManager()
    let keys = [NSURLIsDirectoryKey]

    let handler = {
        (url:NSURL!,error:NSError!) -> Bool in
        print(error.localizedDescription)
        if url != nil {
            print(url.absoluteString)
        }
        return true
    }

    let enumerator = fileManger.enumeratorAtURL(
        directoryUrl, includingPropertiesForKeys:
        keys, options: NSDirectoryEnumerationOptions(),
              errorHandler:handler)

    return enumerator
}

下一个功能是:

func getFileNames(enumerator:NSDirectoryEnumerator, exts:[String]) -> Array<NSURL>
{
    var files = [NSURL]()

    while let url = enumerator.nextObject() as? NSURL
    {
        var isDirectory = ObjCBool(false)
        let exists = NSFileManager.defaultManager().fileExistsAtPath(
            url.path!, isDirectory: &isDirectory)

        if exists == true && isDirectory.boolValue == false {
            files.append(url)

        }
    }
    return files
}

1 个答案:

答案 0 :(得分:0)

的选项中使用.SkipsPackageDescendants
if let enumerator = fileManger.enumeratorAtURL(
        directory, includingPropertiesForKeys: keys, options: options, errorHandler:handler)