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

问题描述 投票:0回答:1

我在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中没有新文件夹。

ios swift file directory nsfilemanager
1个回答
0
投票

您的代码应如下所示,

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,则如果任何中间父目录都不存在,则此方法失败。

© www.soinside.com 2019 - 2024. All rights reserved.