splitFileIntoChunks function
Implementation
Future<SplitFileChunksResult> splitFileIntoChunks(
PlatformFile file, int partSize) async {
final filesize = file.size;
final divider = DividePartResult.parse(filesize, partSize);
final List<Chunk> chunks = [];
for (var i = 0; i < divider.partNumber; i++) {
final number = i + 1;
final offset = i * divider.partSize;
final size = divider.partSize;
final chunk = Chunk(number, offset, size, false);
chunks.add(chunk);
}
if (filesize % divider.partSize > 0) {
final number = chunks.length + 1;
final offset = chunks.length * divider.partSize;
final size = filesize % divider.partSize;
final chunk = Chunk(number, offset, size, false);
chunks.add(chunk);
return SplitFileChunksResult(
DividePartResult(divider.partSize, divider.partNumber + 1), chunks);
}
return SplitFileChunksResult(divider, chunks);
}