我在stackoverflow上找到了一些代码,但是我似乎不太了解它:
extension FileManager.SearchPathDirectory {
func createSubFolder(named: String, withIntermediateDirectories: Bool = true) -> Bool {
var url = FileManager.default.urls(for: self, in: .userDomainMask).first
url?.appendPathComponent("f/folder1/appName/data")
print(url)
do {
try FileManager.default.createDirectory(at: url!.appendingPathComponent(named), withIntermediateDirectories: withIntermediateDirectories, attributes: nil)
print(url)
return true
} catch {
print(error)
return false
}
}
}
使用扩展名:
for index in 1...5 {
if FileManager.SearchPathDirectory.desktopDirectory.createSubFolder(named: String(index)) {
print("folder successfully created")
}
}
在我的应用中,我有一个文件夹“数据”。我想在“数据”中新建5个名为“ 1”,“ 2”,“ 3”,“ 4”,“ 5”的文件夹。
打印五次:
成功创建文件夹
问题我的应用程序中的data folder
中没有新文件夹。
您的代码应如下所示,
extension FileManager.SearchPathDirectory {
func createSubFolder(named: String, withIntermediateDirectories: Bool = true) -> Bool {
guard let url = FileManager.default.urls(for: self, in: .userDomainMask).first else { return false }
do {
try FileManager.default.createDirectory(at: url.appendingPathComponent(named), withIntermediateDirectories: withIntermediateDirectories, attributes: nil)
return true
} catch {
print(error)
return false
}
}
}
我刚刚将IntermediateDirectories的默认值设置为true
。
createIntermediates
:如果为true,则此方法将创建任何不存在的父目录,这是在url中创建目录的一部分。如果为false,则如果任何中间父目录都不存在,则此方法失败。