サーチ…
前書き
ドキュメントディレクトリからチャンク内のファイルを読み込む
チャンク内のドキュメントディレクトリからファイルを読み込む
ドキュメントディレクトリからファイルパスを取得し、そのファイルを1024のチャンクで読み込み、 NSMutableData
オブジェクトに保存(追加)するか、ソケットに直接書き込むことができます。
// MARK: - Get file data as chunks Methode.
func getFileDataInChunks() {
let doumentDirectoryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString
let filePath = doumentDirectoryPath.appendingPathComponent("video.mp4")
//Check file exits at path or not.
if FileManager.default.fileExists(atPath: filePath) {
let chunkSize = 1024 // divide data into 1 kb
//Create NSMutableData object to save read data.
let ReadData = NSMutableData()
do {
//open file for reading.
outputFileHandle = try FileHandle(forReadingFrom: URL(fileURLWithPath: filePath))
// get the first chunk
var datas = outputFileHandle?.readData(ofLength: chunkSize)
//check next chunk is empty or not.
while !(datas?.isEmpty)! {
//here I write chunk data to ReadData or you can directly write to socket.
ReadData.append(datas!)
// get the next chunk
datas = outputFileHandle?.readData(ofLength: chunkSize)
print("Running: \(ReadData.length)")
}
//close outputFileHandle after reading data complete.
outputFileHandle?.closeFile()
print("File reading complete")
}catch let error as NSError {
print("Error : \(error.localizedDescription)")
}
}
}
ファイル読み込みが完了すると、ファイルが取得されますReadData
変数のデータここで、outputFileHandleはFileHandle
オブジェクトです
var outputFileHandle:FileHandle?
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow