【问题标题】:Copying files from bundle to Libraries folder (IOS10, Swift3, xcode 8.2)将文件从 bundle 复制到 Libraries 文件夹(IOS 10、Swift 3、xcode 8.2)
【发布时间】:2017-05-02 23:26:18
【问题描述】:

这是我将文件夹从捆绑包复制到库的代码。

    let library = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask)[0]
    let bundle = Bundle.main.path(forResource: "MYFOLDER", ofType: "")!

    let fileManager = FileManager.default
    do
    {
        try fileManager.copyItem(atPath: bundle, toPath: library.path)
        print("NO CATCH")
    }
    catch
    {
            print(error)
    }

我收到此错误:

Error Domain=NSCocoaErrorDomain Code=516 ““MYFOLDER”无法复制到“CBE6D212-8827-423B-AEC8-6830EED0EC5C”,因为已经存在同名项目。” UserInfo={NSSourceFilePathErrorKey=/Users/Joshua/Library/Developer/CoreSimulator/Devices/84EF61E3-6739-47D1-A0AE-1215B89D0CE7/data/Containers/Bundle/Application/C357EB0E-6719-464B-8DC9-513E5E7F83E1/Heffy.app/我的文件夹,NSUserStringVariant=( 复制 ), NSFilePath=/Users/Joshua/Library/Developer/CoreSimulator/Devices/84EF61E3-6739-47D1-A0AE-1215B89D0CE7/data/Containers/Bundle/Application/C357EB0E-6719-464B-8DC9-513E5E7F83E1/Heffy.app/MYFOLDER , NSDestinationFilePath=/Users/Joshua/Library/Developer/CoreSimulator/Devices/84EF61E3-6739-47D1-A0AE-1215B89D0CE7/data/Containers/Data/Application/CBE6D212-8827-423B-AEC8-6830EED0EC5C/Library, NSUnderlyingError=0x79788错误域=NSPOSIXErrorDomain Code=17 "文件存在"}}

**但是我检查了它在库文件夹中不存在*

【问题讨论】:

  • 删除驱动数据,从你的模拟器中删除项目并清理你的 x-code 项目,再次构建并运行。有时它可能会发生。一切都很好,但仍然有错误。如果您仍然有错误,请告诉我。
  • @TinuDahiya 很抱歉提出这个问题,但是如何从模拟器中删除驱动器数据和项目?
  • @TinuDahiya 我刚刚做了模拟器->重置内容和设置。模拟器现在正在加载。我会报告接下来会发生什么。
  • 打开您的查找器,在左侧栏中您可以看到列表、-> 应用程序、下载、文档和驱动器数据。驱动器数据包含您在 xcode 中运行的项目的所有数据。就像您在手机中安装新应用时的应用数据一样
  • @TinuDahiya “派生数据”,而不是“驱动数据”! :)

标签: ios iphone swift xcode ios10


【解决方案1】:

所以我很生气,所以我关闭了 Xcode。关闭了我的浏览器。关闭我的机器并打开它。猜猜它是什么不起作用........感谢TinuDahiya的帮助我很感激^__^V。

【讨论】:

  • 其实我没有Mac系统,所以无法执行你的代码,
【解决方案2】:

根据您的错误,文件已经存在。试试这段代码并检查

  let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = NSURL(fileURLWithPath: path)
let filePath = url.appendingPathComponent("NewFolder")?.path
let fileManager = FileManager.default
if fileManager.fileExists(atPath: filePath!) {
    print("FILE AVAILABLE")
} else {
    print("FILE NOT AVAILABLE")
}

【讨论】:

  • 感谢您的帮助。我将添加此代码并再次重新测试。它现在可以工作了。
猜你喜欢
  • 2018-05-23
  • 1970-01-01
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 2018-03-11
  • 2017-02-28
  • 1970-01-01
相关资源
最近更新 更多