如何在Swift/iOS中合併文件? FileManager
可以移動和複製項目,但我沒有看到任何關於合併文件。我想有一些像Swift - 合併文件
FileManager.default.merge(files: [URL], to location: URL) throws
文件可能是很大的,所以我寧願避免通過在內存中他們的數據。
===這是我自己的內存合併:
let data = NSMutableData()
files.forEach({ partLocation in
guard let partData = NSData(contentsOf: partLocation) else { return }
data.append(partData as Data)
do {
try FileManager.default.removeItem(at: partLocation)
} catch {
print("error \(error)")
}
})
data.write(to: destination, atomically: true)
總是有做飯的選項你自己。在寫入目的地時連續讀取每個文件。 – Alexander
但有沒有像「追加到目的地」的東西?如果可能的話,我想避免讀取整個文件,然後寫入以限制內存使用量 – Guig
這就是爲什麼你有'FileHandle.readData(ofLength:Int)'。你可以創建一個循環,讀取類似4kb的塊,並將它們寫入輸出。使緩衝區更大將通過最小化內核上下文切換開銷來提高性能,但會使用更多內存 – Alexander