Я новичок быстры, и я не знаю, как сделать новую папку из строки пути (или с какой-то File/ NSFile
объекта)Создать папку в Swift
Это на OS X с какао.
Я новичок быстры, и я не знаю, как сделать новую папку из строки пути (или с какой-то File/ NSFile
объекта)Создать папку в Swift
Это на OS X с какао.
Мое понимание заключается в том, что вы пытаетесь создать каталог программным путем с помощью быстрого доступа. Приведенный ниже код делает то же самое.
var err: NSErrorPointer = nil
let manager = NSFileManager.defaultManager()
manager.createDirectoryAtPath("/Users/abc/Desktop/swiftDir", withIntermediateDirectories: true, attributes: nil, error: err)
Xcode 8 • Свифта 3
extension FileManager.SearchPathDirectory {
func createSubFolder(named: String, withIntermediateDirectories: Bool = false) -> 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 let error as NSError {
print(error.description)
return false
}
}
}
Использование:
if FileManager.SearchPathDirectory.desktopDirectory.createSubFolder(named: "untitled folder") {
print("folder successfully created")
}
Я бы использовал 'first' вместо прямого доступа к первому объекту с индексом' [0] '. Один возвращает необязательный, другой вызывает ошибку времени выполнения, если массив пуст. – Abizern
В Swift 2.0 вы должны использовать новый стиль для обработки ошибок:
let path: String = "/Users/abc/Desktop/swiftDir"
let fileManager = NSFileManager.defaultManager()
do
{
try fileManager.createDirectoryAtPath(path, withIntermediateDirectories: true, attributes: nil)
}
catch let error as NSError
{
print("Error while creating a folder.")
}
Привет JavaNut. Я знаю, что терминатор в этом случае не является обязательным, но синтаксис печати - это что-то еще, что изменилось в swift 2.0: мое намерение заключалось в том, чтобы показать, что печать («Ошибка при создании папки»., Terminator: «\ n") - это новый синтаксис команды печати, и если вы не даете терминатору, после текста печатается новая строка. Так что кто-то может узнать, как показать его в полном синтаксисе. Команда печати выше имеет значения differenz в Swift 1 и Swift 2. Я хотел избежать путаницы в этом. –
Что делать, если пользователь не называются «а»? Что делать, если пользователь работает в сети и имеет совершенно другое местоположение для своей файловой системы. Вместо того, чтобы делать предположения о файловой системе пользователя, используйте инструменты для запроса местоположения специальных каталогов. – Abizern
Это абсолютно правильный фрагмент, который отвечает на вопрос OP. Было бы лучше, если бы путь выборки был «/ foo/bar/baz»? –
Спасибо @WarrenBurton ... –