【发布时间】:2018-10-05 08:45:17
【问题描述】:
我有一些项目保存到文档目录中。我目前需要以编程方式将它们移动到另一个目录。我成功创建了新目录,但是在使用 FileManager.default.moveItem 时似乎没有看到。
用于创建目录的代码。
let path = getDocumentsDirectory().appendingPathComponent("Media").path
do{
try FileManager.default.createDirectory(atPath: path, withIntermediateDirectories: false, attributes: nil)
print("\nDIRECTORY 'Media' CREATED")
}catch {
print("\nDIRECTORY 'Media' WAS NOT ABLE TO BE CREATED")
print("ERROR - \(error)")
}
我使用此代码检查我的网址。
let mediaURL = getDocumentsDirectory().appendingPathComponent("Media")
print("\nMEDIA URL: \(mediaURL)")
哪个输出这个。
MEDIA URL:file:///Users/joseph/Library/Developer/CoreSimulator/Devices/552B72BF-8929-40EE-A75B-4574D3D2918A/data/Containers/Data/Application/E168B872-6A1D-4D78-B460-D45194088E5B/Documents/Media/
这是我用来移动项目的代码。
do{
try FileManager.default.moveItem(at: url, to: mediaURL)
print("\nFILE MOVED TO NEW MEDIA PATH SUCCESSFULLY")
}catch {
print("\nCOULDN'T MOVE FILE TO NEW MEDIA PATH")
print("ERROR - \(error)")
}
这是我尝试移动的每个项目收到的错误。
无法将文件移动到新媒体路径 错误 - 错误域 = NSCocoaErrorDomain 代码 = 516 ““image_5”无法移动到“文档”,因为已存在同名项目。” UserInfo= {NSSourceFilePathErrorKey=/Users/joseph/Library/Developer/CoreSimulator/Devices/552B72BF-8929-40EE-A75B-4574D3D2918A/data/Containers/Data/Application/E168B872-6A1D-4D78-B460-D45194088E5B/Documents/image_5, NSUserStringVariant=( 移动 ), NSDestinationFilePath=/Users/joseph/Library/Developer/CoreSimulator/Devices/552B72BF-8929-40EE-A75B-4574D3D2918A/data/Containers/Data/Application/E168B872-6A1D-4D78-B460-D45194088E5B/Documents/Media, NSFilePath =/Users/joseph/Library/Developer/CoreSimulator/Devices/552B72BF-8929-40EE-A75B-4574D3D2918A/data/Containers/Data/Application/E168B872-6A1D-4D78-B460-D45194088E5B/Documents/image_5, NSUnderlyingError=0x60000 {错误域=NSPOSIXErrorDomain Code=17 "文件存在"}}
媒体目录应该是空的,因为它是新创建的,所以我收到的错误有点令人困惑。它还说它正在尝试将其移至“文档”,但它应该移至“媒体”。是什么导致了这个问题,我该如何解决?我只是想将保存在“文档”中的项目移动到新目录“媒体”中。
【问题讨论】:
-
你可以尝试将文件名追加到目的地
标签: ios swift xcode nsfilemanager