copyItem(atPath:toPath:)
は、Linux用のFoundationフレームワークのSwift 3.1 branch に実装されていません。
open func copyItem(atPath srcPath: String, toPath dstPath: String) throws {
NSUnimplemented()
}
何のことができます。たとえば、どのように行うcopyItem(atPath:toPath:)
の簡易版である
let fm = FileManager.default
if let contents = fm.contents(atPath: srcPath) {
if !fm.createFile(atPath: destPath, contents: contents, attributes: nil) {
print("cannot write destination file")
}
} else {
print("cannot read source file")
}
があるさmaster branchに実装されています。
ファイルは、あなたがこのような、たとえば、チャンク の代わりに、ファイル全体をメモリに読み込んでコピーすることが非常に大きい場合:正常に動作し
guard let srcFile = FileHandle(forReadingAtPath: srcPath) else {
fatalError("cannot open source file")
}
guard let destFile = FileHandle(forWritingAtPath: destPath) else {
fatalError("cannot open destination file")
}
while case let data = srcFile.readData(ofLength: 1024 * 1024), data.count > 0 {
destFile.write(data)
}
srcFile.closeFile()
destFile.closeFile()
を作品別の解決策を見つけた:https://github.com/apple/swift-corelibs-foundation/blob /swift-3.1-branch/Foundation/FileManager.swift#L375。 –
ああ、はい - "NSUnimplemented()" ...画像をコピーするなどの簡単な回避策はありますか? – John