(Swift) 如何在一个文件夹中创建子文件夹

(Swift) How to make subfolders in one folder

我在Whosebug上找到了一些代码,但我好像没看懂:

 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")
                        }
                    }

在我的应用程序中,我有一个文件夹 'data'。我想在 'data' 中创建 5 个名为“1”、“2”、“3”、“4”、“5”的新文件夹。

打印五次:

folder successfully created PROBLEM is there are no new folders in data folder in my app.

您的代码应该如下所示,

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
        }
    }
}

我刚刚将 withIntermediateDirectories 的默认值设置为 true

createIntermediates:如果为真,此方法将创建任何不存在的父目录作为在 url 中创建目录的一部分。如果为 false,则如果任何中间父目录不存在,此方法将失败。