(Swift) Как сделать вложенные папки в одной папке - PullRequest
0 голосов
/ 21 февраля 2020

Я нашел некоторый код в 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».

Печатается пять раз:

папка успешно создана ПРОБЛЕМА, в моем приложении нет новых папок в data folder.

1 Ответ

0 голосов
/ 21 февраля 2020

Ваш код должен быть таким, как показано ниже,

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, этот метод не выполняется, если какой-либо из промежуточных родительских каталогов не существует.

...