使用 Swift 创建一个文件夹
Create a folder with Swift
我正在尝试在 Swift 中使用 NSFileManager
的方法 createDirectoryAtPath:withIntermediateDirectories:attributes:error:
。
问题是我不知道这个函数是什么throws
以防出错。这是否记录在任何地方?如果是,在哪里?
当 Swift 文档说一个函数 throws
时,他们的意思是它抛出一个 NSError
.
考虑以下 do-try-catch
流程:
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
do {
try NSFileManager.defaultManager().createDirectoryAtPath(documentsPath, withIntermediateDirectories: false, attributes: nil)
} catch {
print(error)
print(error.dynamicType)
}
createDirectoryAtPath
将失败,因为文档目录已经存在。记录 error
的 dynamicType
表明它实际上是一个 NSError
对象:
Error Domain=NSCocoaErrorDomain Code=516 "The file “Documents” couldn’t be saved in the folder “35B0B3BF-D502-4BA0-A991-D07568AB87C6” because a file with the same name already exists." UserInfo={NSFilePath=/Users/jal/Library/Developer/CoreSimulator/Devices/E8A35774-C9B7-42F0-93F1-8103FBBC7118/data/Containers/Data/Application/35B0B3BF-D502-4BA0-A991-D07568AB87C6/Documents, NSUnderlyingError=0x7fa88bd14410 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}}
NSError
我正在尝试在 Swift 中使用 NSFileManager
的方法 createDirectoryAtPath:withIntermediateDirectories:attributes:error:
。
问题是我不知道这个函数是什么throws
以防出错。这是否记录在任何地方?如果是,在哪里?
当 Swift 文档说一个函数 throws
时,他们的意思是它抛出一个 NSError
.
考虑以下 do-try-catch
流程:
let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
do {
try NSFileManager.defaultManager().createDirectoryAtPath(documentsPath, withIntermediateDirectories: false, attributes: nil)
} catch {
print(error)
print(error.dynamicType)
}
createDirectoryAtPath
将失败,因为文档目录已经存在。记录 error
的 dynamicType
表明它实际上是一个 NSError
对象:
Error Domain=NSCocoaErrorDomain Code=516 "The file “Documents” couldn’t be saved in the folder “35B0B3BF-D502-4BA0-A991-D07568AB87C6” because a file with the same name already exists." UserInfo={NSFilePath=/Users/jal/Library/Developer/CoreSimulator/Devices/E8A35774-C9B7-42F0-93F1-8103FBBC7118/data/Containers/Data/Application/35B0B3BF-D502-4BA0-A991-D07568AB87C6/Documents, NSUnderlyingError=0x7fa88bd14410 {Error Domain=NSPOSIXErrorDomain Code=17 "File exists"}} NSError