Swift如何在临时文件夹中创建复杂的文件夹结构

Posted

技术标签:

【中文标题】Swift如何在临时文件夹中创建复杂的文件夹结构【英文标题】:Swift how to create complex folder structure in temp folder 【发布时间】:2016-12-10 14:21:08 【问题描述】:

我想在应用程序的临时文件夹中创建文件夹结构。

文件夹的结构应该是:

iPhone

强度 积极的 否定 省略号 积极的 否定 复合 积极的 否定

我正在使用FileManager 创建目录。

class func createBaseDirectory() 

let filemgr = FileManager.default

let dirPaths = filemgr.urls(for: .documentDirectory, in: .userDomainMask)

let docsURL = dirPaths[0]

let newDir = docsURL.appendingPathComponent("iPhone").path

do 
    try filemgr.createDirectory(atPath: newDir, withIntermediateDirectories: true, attributes: nil)
 catch let error as NSError 
    print("Error: \(error.localizedDescription)")


但是这种方式效率不高。因为我应该复制相当多的代码sn-ps。 Swift语言是否有一些更方便的方法来创建文件夹结构?

【问题讨论】:

将文件夹名称数组传递给函数,并使用循环创建每个文件夹... 【参考方案1】:

我在 Swift 操场上创建了以下内容(与 Martin R 建议的相同),似乎工作正常:

import Foundation

let fm = FileManager.default
let baseUrl = fm.urls(for: .documentDirectory, in: .userDomainMask).first!

let subPaths = [
    "iPhone/Intensity/Positive",
    "iPhone/Intensity/Negative",
    "iPhone/Elipses/Positive",
    "iPhone/Elipses/Negative",
    "iPhone/Composite/Negative",
    "iPhone/Composite/Negative",
]

subPaths.forEach  subPath in
    let url = baseUrl.appendingPathComponent(subPath)
    do 
        try fm.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil)
        print("path created: \(url)")
     catch let error 
        print("error: \(error)")
    

您可以使用此代码在 NSFileManager 上创建扩展以实现可重用性。

【讨论】:

以上是关于Swift如何在临时文件夹中创建复杂的文件夹结构的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中创建一个临时文件(用于写入)? [复制]

在 lua 中创建一个临时文件

如何在swift ios中创建指定的数据结构?

Swift 工具类:处理临时文件

如何正确引用/检索在 AppData 中创建的临时文件以将文件上传到服务器?

如何在 iOS 编程中在 Swift 中创建实体文件?