Swift - 从文档目录中删除自定义文件夹

Posted

技术标签:

【中文标题】Swift - 从文档目录中删除自定义文件夹【英文标题】:Swift -Delete Custom Folder From Documents Directory 【发布时间】:2020-02-26 17:28:50 【问题描述】:

录制视频时,我使用"/MyFolder" 创建一个自定义文件夹,如下所示:

guard let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first else  return 
let dirPath = "\(documentsPath)/MyFolder/Videos_\(UUID().uuidString).mp4"

let outputFileURL = URL(fileURLWithPath: dirPath)
// ...

现在我有一个删除自定义文件夹的功能:

func deleteCustom(folder: String) 
    let fileManager = FileManager.default
    guard let documentsDirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else  return 
    let customFolder = documentsDirectory.appendingPathComponent(folder)
    guard let filePaths = try? fileManager.contentsOfDirectory(at: customFolder, includingPropertiesForKeys: nil, options: []) else  return 
    for filePath in filePaths 
        try? fileManager.removeItem(at: filePath)
    

在函数参数中我应该传入"MyFolder"还是"/MyFolder"

【问题讨论】:

"MyFolder",因为appendingPathComponent 会自动添加/ @Asperi 谢谢!将其发布为答案,我会接受它 @LanceSamaria 无需枚举所有文件并一一删除。您可以简单地删除整个 customFolder fileManager.removeItem(at: customFolder)。如果您想保留一个空文件夹,只需在删除后重新创建即可。顺便说一句,不要忽略您的错误。你应该总是抓住他们。 @LeoDabus 感谢您的建议,这很有意义并且更容易。快速提问,迭代时删除文件需要多长时间,而不是像你建议的那样一次删除文件? @LeoDabus 有道理,感谢您的建议 :) 【参考方案1】:

在函数参数中我应该传入“MyFolder”还是“/MyFolder”?

“MyFolder”,因为 appendingPathComponent 会自动添加 /。

【讨论】:

以上是关于Swift - 从文档目录中删除自定义文件夹的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义按钮从表格视图中删除一行 - Swift 3

从 UITableView 中删除自定义视图

swift:从自定义应用程序加载时,iCloud 文档似乎被禁用

Swift 3 - 自定义 UIButton 半径删除约束?

如何在 Swift 3 中加载/删除带有动画的自定义视图

如何在 Swift 中以编程方式从 UIView 中删除安全区域?