Как разделить файл на части в Windows

Как разделить файл на части в Windows

Способы разделить файл на части в Windows Если для передачи, хранения или других целей вам потребовалось разделить большой файл на несколько частей, сделать это в Windows 11, 10 и предыдущих версиях системы можно несколькими способами: с помощью команд PowerShell и командной строки, в сторонних программах, или с помощью онлайн-сервисов, впрочем в последнем случае ОС не будет играть роли.

В этой инструкции подробно о нескольких способах разделить большой файл на несколько частей, а также кратко о разделении файлов различных типов: pdf и txt, видео и других.

Способы разделить большой файл на части

Эта часть инструкции не касается какого-то определенного типа файлов: разделяется любой файл, независимо от типа и содержимого — это может быть текстовый файл или двоичный, медиа или что-то ещё. Для большинства из них чтение станет невозможным до последующего объединения частей.

Разделение файла на несколько частей в PowerShell

Первая возможность — использовать команды и скрипты PowerShell.

FIleSplitter

Если вы не готовы самостоятельно писать такие скрипты, рекомендую использовать готовый модуль для разделения файлов:

  1. Запустите PowerShell от имени Администратора. В Windows 11 и Windows 10 это можно сделать, нажав правой кнопкой мыши по кнопке «Пуск» и выбрав пункт «Windows Powershell (Администратор)» или «Терминал Windows (Администратор)».
  2. Установите модуль FileSplitter с помощью команды
    Install-Module -Name FileSplitter

    в процессе потребуется подтвердить установку вводом Y и нажатием Enter. Установка File Splitter в PowerShell

  3. После того, как модуль установлен, в PowerShell будут поддерживаться две команды: Split-File для разделения файла и Join-File для его объединения.

Примеры использования команд:

Split-File -Path "C:test.zip" -PartSizeBytes 2.5MB

Делит файл C:test.zip на части размером 2.5 Мб с именами testzip.00.part, testzip.01.part и далее в том же расположении, где хранится оригинальный файл.

Join-File -Path "C:test.zip"

Команда ищет файл c:testzip.00.part и остальные части, объединяет их в файл C:test.zip

Теперь несколько примеров скриптов PowerShell которые могут быть полезны, если вы захотите проработать свою реализацию.

Разделение текстового файла в PowerShell

Скрипт для разделения файла с текстовым содержимым (txt, log и других) на части установленного в первой строке размера, при этом разделение происходит по строкам без их обрыва посередине:

$upperBound = 1MB$ext = "txt"$rootName = "txt_"$reader = new-object System.IO.StreamReader("C:text.txt")$count = 1$fileName = "{0}{1}.{2}" -f ($rootName, $count, $ext)while(($line = $reader.ReadLine()) -ne $null){ Add-Content -path $fileName -value $line if((Get-ChildItem -path $fileName).Length -ge $upperBound) { ++$count $fileName = "{0}{1}.{2}" -f ($rootName, $count, $ext) }}$reader.Close()

Разделение и объединение произвольного двоичного файла

Скрипт для разделения произвольного файла на части:

function Split-Files{ [CmdletBinding()] Param ( [Parameter(Mandatory = $true, ValueFromPipeLine = $true, ValueFromPipelineByPropertyName = $true)] [String] $InputFile, [Parameter(Mandatory = $true)] [String] $OutputDirectory, [Parameter(Mandatory = $false)] [String] $OutputFilePrefix = "chunk", [Parameter(Mandatory = $false)] [Int32] $ChunkSize = 4096 ) Begin { Write-Output "Beginning file split..." } Process { if (-not (Test-Path -Path $OutputDirectory)) { New-Item -ItemType Directory $OutputDirectory | Out-Null Write-Verbose "Created OutputDirectory: $OutputDirectory" } $FileStream = [System.IO.File]::OpenRead($InputFile) $ByteChunks = New-Object byte[] $ChunkSize $ChunkNumber = 1 While ($BytesRead = $FileStream.Read($ByteChunks, 0, $ChunkSize)) { $OutputFile = Join-Path -Path $OutputDirectory -ChildPath "$OutputFilePrefix$ChunkNumber" $OutputStream = [System.IO.File]::OpenWrite($OutputFile) $OutputStream.Write($ByteChunks, 0, $BytesRead) $OutputStream.Close() Write-Verbose "Wrote File: $OutputFile" $ChunkNumber += 1 } } End { Write-Output "Finished splitting file." }} function Unsplit-Files{ [CmdletBinding()] Param ( [Parameter(Mandatory = $true)] [String] $InputDirectory, [Parameter(Mandatory = $false)] [String] $InputFilePrefix = "chunk", [Parameter(Mandatory = $true)] [String] $OutputDirectory, [Parameter(Mandatory = $true)] [String] $OutputFile ) Begin { Write-Output "Beginning file unsplit..." } Process { if (-not (Test-Path -Path $OutputDirectory)) { New-Item -ItemType Directory $OutputDirectory | Out-Null Write-Verbose "Created OutputDirectory: $OutputDirectory" } $OutputPath = Join-Path -Path $OutputDirectory -ChildPath $OutputFile $OutputStream = [System.Io.File]::OpenWrite($OutputPath) $ChunkNumber = 1 $InputFilename = Join-Path -Path $InputDirectory -ChildPath "$InputFilePrefix$ChunkNumber" while (Test-Path $InputFilename) { $FileBytes = [System.IO.File]::ReadAllBytes($InputFilename) $OutputStream.Write($FileBytes, 0, $FileBytes.Count) Write-Verbose "Unsplit File: $InputFilename" $ChunkNumber += 1 $InputFilename = Join-Path -Path $InputDirectory -ChildPath "$InputFilePrefix$ChunkNumber" } $OutputStream.close() } End { Write-Output "Finished unsplitting file." }}

Пример использования (импорт модуля, разбиение файла и объединение):

Import-Module C:Split-Files.ps1Split-Files -InputFile "путь_к_большому_файлу.zip" -OutputDirectory "путь_к_месту_сохранения" -ChunkSize РАЗМЕР_ЧАСТИ_В_БАЙТАХ -VerboseUnsplit-Files -InputDirectory "путь_к_месту_хранения_частей_файла" -OutputDirectory "путь_к_месту_сохранению_объединенного_файла" -OutputFile имя_объединенного_файла.zip

MakeCab

В Windows присутствует встроенная утилита для создания файлов .cab, которую можно использовать для разделения файла на части. Порядок действий:

  1. Создайте текстовый файл ddf.txt с содержимым:
    .Set CabinetNameTemplate=test_*.cab; <-- Enter chunk name format.Set MaxDiskSize=900000; <-- Здесь вводим размер части.Set ClusterSize=1000.Set Cabinet=on;.Set Compress=off;.set CompressionType=LZX;.set CompressionMemory=21.Set DiskDirectoryTemplate=;путь_к_исходному_файлу
  2. Используйте команду
    makecab /f путь_к_файлу_ddf.txt

    в командной строке

  3. В результате в текущей рабочей папке командной строки будут созданы файлы .cab заданного размера.
  4. Для объединения файлов cab в исходный файл используйте команду
    extrac32 filecab путь_к_объединенному_файлу

    указывая путь к первому файл в очереди в качестве первого параметра.

Сторонние программы с функциями разделения файлов

Существуют сторонние приложения, специально предназначенные для разделения файлов на части, а также инструменты, которые имеют такую возможность как часть своего функционала. Начнем с самого распространенного варианта — архиваторы.

Архиваторы

Большинство архиваторов имеют возможность разделить создаваемый архив на несколько томов заданного размера. Если нам не требуется непосредственно архивация и нужно сэкономить место, достаточно создать архив без сжатия.

Например, в бесплатном архиваторе 7-Zip достаточно выбрать файл или файлы, нажать «Добавить», а потом настроить архив и размеры файлов, на которые он будет разбит, как на скриншоте ниже:

Разделение файла в 7-zip

В WinRAR необходимые действия выполняются тем же образом, пример — на скриншоте:

Разделение файла в WinRAR

В обоих случаях размер тома архива можно выбрать из списка, либо ввести вручную в соответствии с вашими потребностями. При использовании этого метода рекомендую использовать формат ZIP, как самый поддерживаемый.

Получить исходный файл можно просто положив все файлы архива в одно расположения и распаковав архив любым архиватором.

Total Commander

Известный многим архиватор Total Commander имеет опцию разбивки и сбора файлов в меню «Файл».

Разделить файл в Total Commander

Достаточно выбрать файл на компьютере и использовать указанный пункт меню для разбивки файла с заданным размером частей.

Параметры разделения файла в Total Commander

В дальнейшем возможна сборка файла с помощью того же Total Commander.

Специальные утилиты для разбивки файлов

Также в Интернете вы можете найти множество утилит, которые специально предназначены для разделения файлов и их повторной сборки.

KFK File Splitter

Бесплатная утилита KFK имеет интерфейс на русском языке, достаточно понятный, чтобы объяснять, как именно им пользоваться не потребовалось, все действия для использования разбивки и обратной сборки очевидны:

KFK File Splitter

Официальный сайт для загрузки KFK File Splitter — https://www.kcsoftwares.com/?kfk

FFSJ (File Splitter & Joiner)

FFSJ — программа, очень похожая на первую в списке, но без русского языка интерфейса. Выглядит как на изображении ниже:

Программа File Splitter and Joiner

В программе представлены две основные вкладки — для разделения и объединения файлов, а также третья — для просмотра контрольных сумм файлов.

GSplit

GSplit — одна из самых популярных программ для разделения файлов с хорошим набором дополнительных функций, но, к сожалению, без русского языка интерфейса.

Программа GSplit для разделения файлов на части

Порядок простого использования GSplit:

  1. Выбираем исходный файл или несколько файлов в пункте «Original File».
  2. Задаем место сохранения разделенного файла в пункте «Destination Folder»
  3. Задаем размеры частей и тип частей в разделе Pieces — Type and Size.
  4. Запускаем разделение кнопкой Split.

В дальнейшем, когда потребуется, можно будет использовать кнопку Unite для объединения частей файлов.

Если требуется более простой подход и вариант настройки — используйте кнопку «Express» в меню программы. Также в инструменте вы найдете возможность создания «самообъединеняющихся» частей файлов: раздел Self-Uniting.

Скачать GSplit можно с официального сайта https://www.gdgsoft.com/gsplit

File Splitter (утилита командной строки)

Если вам требуется использование функций разделения файлов в командной строке, можно использовать консольную утилиту File Splitter, доступную бесплатно на GitHub разработчика https://github.com/dubasdey/File-Splitter

Пример использования утилиты:

fsplit -split 1024 kb c:file.txt

Для объединения используем команду copy с параметром /a для текстовых и /b для произвольных двоичных файлов, пример:

copy /A test1.txt+test2.txt file.txt

Разделение PDF, MP3 и других медиа файлов

Часто пользователям требуется разделить не произвольный файл, а вполне конкретный и не на части, которые нужно затем соединять, а на фрагменты, каждый из которых можно просмотреть отдельно. Для этого можно использовать соответствующие редакторы PDF , редакторы аудио и видеоредакторы . Также может иметь смысл использование онлайн-сервисов:

Для разделения PDF файлов на части или страницы:

Для разделения MP3:

Надеюсь, есть читатели, для которых информация окажется востребованной. Если остаются вопросы или, возможно, есть дополнения к статье, жду вашего комментария.

EnglishRussianUkrainian