Если для передачи, хранения или других целей вам потребовалось разделить большой файл на несколько частей, сделать это в Windows 11, 10 и предыдущих версиях системы можно несколькими способами: с помощью команд PowerShell и командной строки, в сторонних программах, или с помощью онлайн-сервисов, впрочем в последнем случае ОС не будет играть роли.
В этой инструкции подробно о нескольких способах разделить большой файл на несколько частей, а также кратко о разделении файлов различных типов: pdf и txt, видео и других.
Способы разделить большой файл на части
Эта часть инструкции не касается какого-то определенного типа файлов: разделяется любой файл, независимо от типа и содержимого — это может быть текстовый файл или двоичный, медиа или что-то ещё. Для большинства из них чтение станет невозможным до последующего объединения частей.
Разделение файла на несколько частей в PowerShell
Первая возможность — использовать команды и скрипты PowerShell.
FIleSplitter
Если вы не готовы самостоятельно писать такие скрипты, рекомендую использовать готовый модуль для разделения файлов:
- Запустите PowerShell от имени Администратора. В Windows 11 и Windows 10 это можно сделать, нажав правой кнопкой мыши по кнопке «Пуск» и выбрав пункт «Windows Powershell (Администратор)» или «Терминал Windows (Администратор)».
- Установите модуль FileSplitter с помощью команды
Install-Module -Name FileSplitter
в процессе потребуется подтвердить установку вводом Y и нажатием Enter.
- После того, как модуль установлен, в 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.ps1 Split-Files -InputFile "путь_к_большому_файлу.zip" -OutputDirectory "путь_к_месту_сохранения" -ChunkSize РАЗМЕР_ЧАСТИ_В_БАЙТАХ -Verbose Unsplit-Files -InputDirectory "путь_к_месту_хранения_частей_файла" -OutputDirectory "путь_к_месту_сохранению_объединенного_файла" -OutputFile имя_объединенного_файла.zip
MakeCab
В Windows присутствует встроенная утилита для создания файлов .cab, которую можно использовать для разделения файла на части. Порядок действий:
- Создайте текстовый файл 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=; путь_к_исходному_файлу
- Используйте команду
makecab /f путь_к_файлу_ddf.txt
в командной строке
- В результате в текущей рабочей папке командной строки будут созданы файлы .cab заданного размера.
- Для объединения файлов cab в исходный файл используйте команду
extrac32 filecab путь_к_объединенному_файлу
указывая путь к первому файл в очереди в качестве первого параметра.
Сторонние программы с функциями разделения файлов
Существуют сторонние приложения, специально предназначенные для разделения файлов на части, а также инструменты, которые имеют такую возможность как часть своего функционала. Начнем с самого распространенного варианта — архиваторы.
Архиваторы
Большинство архиваторов имеют возможность разделить создаваемый архив на несколько томов заданного размера. Если нам не требуется непосредственно архивация и нужно сэкономить место, достаточно создать архив без сжатия.
Например, в бесплатном архиваторе 7-Zip достаточно выбрать файл или файлы, нажать «Добавить», а потом настроить архив и размеры файлов, на которые он будет разбит, как на скриншоте ниже:
В WinRAR необходимые действия выполняются тем же образом, пример — на скриншоте:
В обоих случаях размер тома архива можно выбрать из списка, либо ввести вручную в соответствии с вашими потребностями. При использовании этого метода рекомендую использовать формат ZIP, как самый поддерживаемый.
Получить исходный файл можно просто положив все файлы архива в одно расположения и распаковав архив любым архиватором.
Total Commander
Известный многим архиватор Total Commander имеет опцию разбивки и сбора файлов в меню «Файл».
Достаточно выбрать файл на компьютере и использовать указанный пункт меню для разбивки файла с заданным размером частей.
В дальнейшем возможна сборка файла с помощью того же Total Commander.
Специальные утилиты для разбивки файлов
Также в Интернете вы можете найти множество утилит, которые специально предназначены для разделения файлов и их повторной сборки.
KFK File Splitter
Бесплатная утилита KFK имеет интерфейс на русском языке, достаточно понятный, чтобы объяснять, как именно им пользоваться не потребовалось, все действия для использования разбивки и обратной сборки очевидны:
Официальный сайт для загрузки KFK File Splitter — https://www.kcsoftwares.com/?kfk
FFSJ (File Splitter & Joiner)
FFSJ — программа, очень похожая на первую в списке, но без русского языка интерфейса. Выглядит как на изображении ниже:
В программе представлены две основные вкладки — для разделения и объединения файлов, а также третья — для просмотра контрольных сумм файлов.
GSplit
GSplit — одна из самых популярных программ для разделения файлов с хорошим набором дополнительных функций, но, к сожалению, без русского языка интерфейса.
Порядок простого использования GSplit:
- Выбираем исходный файл или несколько файлов в пункте «Original File».
- Задаем место сохранения разделенного файла в пункте «Destination Folder»
- Задаем размеры частей и тип частей в разделе Pieces — Type and Size.
- Запускаем разделение кнопкой 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, редакторы аудио и видеоредакторы. Также может иметь смысл использование онлайн-сервисов:
Для разделения PDF файлов на части или страницы:
- Официальный инструмент разделения PDF файлов от Adobe — https://www.adobe.com/acrobat/online/split-pdf.html
- Неофициальный онлайн-сервис, но на русском: https://pdf.io/ru/split/
- И множество других.
Для разделения MP3:
- Сервис разделения аудио-файлов от veed.io
- Aspose Audio Splitter https://products.aspose.app/audio/ru/splitter/mp3
- И другие — в Интернете подобных онлайн-сервисов предостаточно.
Надеюсь, есть читатели, для которых информация окажется востребованной. Если остаются вопросы или, возможно, есть дополнения к статье, жду вашего комментария.
Quick Links
If you’ve run into a file size limitation, it’s possible to split your large files into multiple smaller files. You can then recombine these files to get the actual large file. I’ll show you various ways to do that on your Windows 11 PC.
7-Zip
The easiest way to split large files on Windows 11 is by using the free and open-source 7-Zip app. This app allows you to compress your files and extract various archive types. You can use this tool to create multiple archives from a single large file.
To do that, open your favorite web browser and launch the 7-Zip site. Download the app installer, run it, and restart your Windows 11 system.
Next, open File Explorer (press Windows+E) and find the large file you want to split. Right-click the file and choose Show More Options > 7-Zip > Add to Archive.
You’ll see the Add to Archive window. Here, click the «Split to Volume, Bytes» field and type the size for each small file to be generated. For example, to make each chunk 10 MB in size, type 10M.
Optionally, configure other options in the same window. Then, at the bottom, click «OK.»
7-Zip will begin creating multiple files out of the one large file you’ve given it. It’ll save those multiple small chunks in the same directory as the original file. The chunks will have the same name as the original file name followed by numbers, like 001, 002, and so on.
To recombine these small files into one file, right-click the first chunk (that says «001») and select Show More Options > 7-Zip > Extract Files. In the open window, choose where you want to save the extracted file and select «OK.»
If you run into an error while recombining files, ensure all the chunks are in the same folder. If they aren’t, copy and paste them in a single folder before performing the extraction process.
WinRAR
WinRAR is another graphical tool you can use to split large files into multiple smaller files on your PC. To use it, go to the WinRAR site, then download and install the tool. Afterward, restart your computer.
Launch File Explorer and find the file to split. Right-click the file and select WinRAR > Add to Archive.
On the Archive Name and Parameters window, click the «Split to Volume, Size» field and type the size for each file chunk. Make sure to select the correct unit from the given drop-down menu. Optionally, configure other options, like the archive format, and so on. Then, click «OK» to start splitting your file.
WinRAR will create file chunks of the size you specified and will place these chunks in the same folder as the original file. The chunks will say part1, part2, and so on. In the future, to recombine these files and get the original file, right-click the first chunk (that says «part1») and choose WinRAR > Extract Files.
