我之前从应用程序中复制了这样的文件,并且完全按照它在另一个应用程序中显示的方式复制了代码,但出于什么原因,当它尝试运行此特定代码时,它只会创建新目录。
但是,它不会将我在主包中支持文件中保存的二进制文件保存到新目录中。我已经做了大量的谷歌搜索和搜索堆栈溢出,并决定我可能要在这里发布一些东西。
let path = NSBundle.mainBundle().resourcePath?.stringByAppendingPathComponent("youtube-dl")
let destination = "~/Library/Application Support/Youtube DLX/"
let destinationPath = destination.stringByStandardizingPath
NSFileManager.defaultManager().createDirectoryAtPath(destinationPath, withIntermediateDirectories: true, attributes: nil, error: nil)
NSFileManager.defaultManager().copyItemAtPath(path!, toPath: destinationPath + "youtube-dl", error: nil)
请注意我尝试复制的文件没有扩展名,因此全名只是“youtube-dl”
答案 0 :(得分:2)
的结果
let destinationPath = destination.stringByStandardizingPath
没有尾部斜杠,因此您尝试将文件复制到
"~/Library/Application Support/Youtube DLXyoutube-dl"
你应该使用
destinationPath.stringByAppendingPathComponent("youtube-dl")
生成目标路径,就像您对源路径所做的那样。
通常(如评论中所述),您应该使用error参数和 检查成功的返回值,例如
var error : NSError?
if !NSFileManager.defaultManager().copyItemAtPath(..., error: &error) {
println("copy failed: \(error)")
}