/
dgrigorev
/
SkiaSharp
Обзор
Документация
Войти
/
dgrigorev
/
SkiaSharp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
scripts/split-file.ps1
61 строка
1 KB
Matthew Leibowitz
Update the version of Clang used to build for Tizen (#1386)
07 июл 2020, 20:15
Не верифицирован
07 июл 2020, 20:15
c908d6d
Код
Авторство
О чём код?
Param( [string] $Path, [long] $ChunkSize = 1GB ) $ErrorActionPreference = 'Stop' if ($ChunkSize -le 0) { Write-Error "Only positive sizes allowed" exit 1 } Write-Host "Splitting file $Path to parts of $ChunkSize byte size..." [long] $bufferSize = 100MB if ($bufferSize -gt $ChunkSize) { $bufferSize = $ChunkSize } $buffer = New-Object byte[] $bufferSize $sourceFile = [System.IO.File]::OpenRead($Path) $sourceReader = New-Object System.IO.BinaryReader($sourceFile) [int] $index = 1 do { $filename = "$Path." + $index.ToString("000") Write-Host "Writing $filename..." $destFile = [System.IO.File]::Create($filename) $destWriter = New-Object System.IO.BinaryWriter($destFile) [long] $sizeSoFar = 0 [long] $bytesRead = 0 while ($sizeSoFar -lt $ChunkSize) { [long] $sizeToRead = $ChunkSize - $sizeSoFar if ($sizeToRead -gt $bufferSize) { $sizeToRead = $bufferSize } Write-Verbose "Reading $sizeToRead bytes..." $bytesRead = $sourceReader.Read($buffer, 0, $buffer.Length) Write-Verbose "Read $bytesRead bytes." if ($bytesRead -le 0) { break; } $sizeSoFar += $bytesRead $destWriter.Write($buffer, 0, $bytesRead) } $destWriter.Close() $destFile.Close() Write-Verbose "Wrote $bytesSoFar bytes to $filename." $index++ } while ($bytesRead -gt 0) $sourceReader.Close() $sourceFile.Close() Write-Host "Split complete." exit $LASTEXITCODE