Быстрое объединение файловых блоков в FileHandle (или Outputstream) - PullRequest
0 голосов
/ 10 апреля 2019

Я хотел бы загрузить файл путем слияния фрагментов файла, которые были загружены с удаленного сервера в outputtream.Я использовал этот блок кода:

if FileManager.default.createFile(atPath: filePath.path, contents: Data(), attributes: nil) {
    merge(files: urlArray, to: filePath)
}

func merge(files: [URL], to destination: URL)  {
    do {
        let file = try FileHandle(forWritingTo: filePath)
        for partLocation in files {

            let chunkSize = try! partLocation.resourceValues(forKeys: [URLResourceKey.fileSizeKey]).allValues.first?.value as! UInt64

            file.seek(toFileOffset: UInt64(chunkSize))
            file.write(try Data(contentsOf: partLocation, options: .mappedIfSafe))
        }
        file.closeFile()
    }
    catch {
        print(error)
    }
}

Кажется, я могу объединить куски и загрузить файл.Но я не могу открыть файл, когда я пытаюсь.Что я делаю не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...