简体   繁体   English

删除文档目录中的多个文件

[英]Delete multiple files in Document Directory

I am trying to create a function that I can delete multiple files in Document Directory with a given file Extension. 我正在尝试创建一个函数,我可以使用给定的文件扩展名删除文档目录中的多个文件。

So far I have the function below but I can I complete it on older to delete the files founds? 到目前为止,我有下面的功能,但我可以在较旧的时候完成删除已创建的文件?

static func searchFilesDocumentsFolder(Extension: String) {

        let documentsUrl =  NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!

        do {
            let directoryUrls = try  NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsUrl, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions())
            //print(directoryUrls)
            let Files = directoryUrls.filter{ $0.pathExtension == Extension }.map{ $0.lastPathComponent }
            print("\(Extension) FILES:\n" + Files.description)
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    }
for file in Files {
    try NSFileManager.defaultManager().removeItemAtPath(file)
}

For Swift 3 and Swift 4.0 对于Swift 3和Swift 4.0

 let fileManager : FileManager = FileManager.default
    let nsDocumentDirectory = FileManager.SearchPathDirectory.documentDirectory
    let nsUserDomainMask = FileManager.SearchPathDomainMask.userDomainMask
    let paths : NSArray = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true) as NSArray
    let documentsDirectory = paths.object(at: 0) as! NSString
    print(documentsDirectory)
    let contents : NSArray =  try! fileManager.contentsOfDirectory(atPath: documentsDirectory as String) as NSArray
    let enumerator : NSEnumerator = contents.objectEnumerator()
    while let element = enumerator.nextObject() as? String
    {
        let fileName = element as NSString
        if fileName.pathExtension == "m4a"
        {
            let pathOfFile = documentsDirectory.appendingPathComponent(fileName as String)
            try! fileManager.removeItem(atPath: pathOfFile)

        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM