Swift 如何在临时文件夹中创建复杂的文件夹结构
Swift how to create complex folder structure in temp folder
我想在应用程序的临时文件夹中创建文件夹结构。
文件夹结构应为:
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)")
}
}
但这种方式不是 efficient.Because 我应该复制相当多的代码片段。 Swift 语言是否有一些更方便的方法来创建文件夹结构?
我在 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 上创建扩展以实现可重用性。
我想在应用程序的临时文件夹中创建文件夹结构。
文件夹结构应为:
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)")
}
}
但这种方式不是 efficient.Because 我应该复制相当多的代码片段。 Swift 语言是否有一些更方便的方法来创建文件夹结构?
我在 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 上创建扩展以实现可重用性。