Self-Uniting companion .ini
Reference for developers and system administrators.
When a split includes the Self-Uniting app, GSplit writes a text file next to the copy of GUnite.exe: the app and its .ini share a name (GUnite.exe and GUnite.ini, Restore.exe and Restore.ini). The app, started without a piece, reads this file and restores the set it describes. The file carries a version number, format=1.
You can read it, check it, or write your own: any program that produces this format can drive GUnite.exe. The pieces themselves are described in Piece format V4.
File format
Section titled “File format”- Encoding: UTF-8, without a byte order mark.
- One
key=valueper line, in[section]blocks. Values are not quoted. - A multi-line or special value is stored on one line, with these escapes:
| Sequence | Meaning |
|---|---|
\n | Line break |
\\ | Backslash |
\s | A space at the start or end of the value (the reader trims values) |
\xHH | Any other control character, in hexadecimal |
- Booleans are
0or1. Absent, or anything else, means the default. - Text values that GSplit writes escaped are marked escaped in the tables below.
Example
Section titled “Example”[gunite]format=1program=GUnite.exe
[set]id={4f2c8a10-5b3e-4d6a-9c1f-0a7e2b9d3c55}label=title=Holiday videoauthor=Annadescription=Summer 2026created=2026-10-21 19:30:05
[source]name=film.binsize=52428800sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08pieceCount=6pieceMask=disk{num}.gsdfirstPiece=disk1.gsd
[options]welcome=Welcome to this app. It will restore the following file:\n\n film.bin\n ...messageAtStart=messageAtEnd=about=This file was split with GSplit freely available at www.gdgsoft.comdestination=3customFolder=lockDestination=0askOverwrite=1openAfter=0waitForEnd=0deleteAfterRun=0openParams=autoClose=0autoStart=0silent=0headerImage=languageFile=
[pieces]1=disk1.gsd|10485760|89ABCDEF2=disk2.gsd|10485760|01234567Section [gunite]
Section titled “Section [gunite]”| Key | Type | Default | Meaning |
|---|---|---|---|
format | integer | 1 | Version of the format. |
program | text | empty | File name of the app that was written. |
Section [set]
Section titled “Section [set]”| Key | Type | Default | Meaning |
|---|---|---|---|
id | text, escaped | empty | The set identifier: the canonical UUID, in braces, that every V4 piece carries. |
label | text, escaped | empty | The identifier text you typed when it was not a UUID; empty otherwise. |
title | text, escaped | empty | Title of the set. |
author | text, escaped | empty | Author. |
description | text, escaped | empty | Description. |
created | date and time | none | Date of the split in local time, yyyy-mm-dd hh:nn:ss (19 characters). Any other length is ignored. |
Section [source]
Section titled “Section [source]”This section is required, with [pieces]; without either, the app refuses the file.
| Key | Type | Default | Meaning |
|---|---|---|---|
name | text, escaped | united | File name of the original, which is also the name of the restored file. |
size | integer | -1 | Size of the original in bytes. |
sha256 | text | empty | SHA-256 of the original, 64 hexadecimal digits. Informative. |
pieceCount | integer | 0 | Number of pieces. 0 means the number of lines in [pieces]. |
pieceMask | text, escaped | empty | The naming mask of the pieces, for example disk{num}.gsd. |
firstPiece | text, escaped | empty | File name of piece 1. Written for readers; the app takes piece 1 from [pieces]. |
Section [options]
Section titled “Section [options]”These keys come from the Operation page.
| Key | Type | Default | Meaning |
|---|---|---|---|
welcome | text, escaped | empty | Welcome message. GSplit has already replaced the placeholders ({filename}, {desc}, {size}, {fullsize}, {piececount}, {author}). |
messageAtStart | text, escaped | empty | Message shown at the start. |
messageAtEnd | text, escaped | empty | Message shown after a successful run. |
about | text, escaped | empty | About message. |
destination | integer | 3 | Destination folder: 0 Windows folder, 1 System folder, 2 Temp folder, 3 current folder, 4 folder of the app, 5 custom folder. A value outside 0 to 5 gives 3. |
customFolder | text, escaped | empty | Folder used with destination=5. |
lockDestination | boolean | 0 | The user cannot change the destination folder. |
askOverwrite | boolean | 1 | Ask before replacing an existing output file. |
openAfter | boolean | 0 | Open the restored file (Windows). |
waitForEnd | boolean | 0 | Wait for the program that opened the file. |
deleteAfterRun | boolean | 0 | Delete the restored file afterwards. Needs waitForEnd. |
openParams | text, escaped | empty | Parameters passed to the program that opens the file. |
autoClose | boolean | 0 | Close the app after a successful run. |
autoStart | boolean | 0 | Start without waiting for the user. |
silent | boolean | 0 | No window, no questions. |
headerImage | text, escaped | empty | File name of the header image, next to the app. |
languageFile | text, escaped | empty | File name of the .po catalog, next to the .ini. |
On Linux, destination values 0 and 1 mean the current folder, and openAfter, waitForEnd and deleteAfterRun are ignored.
Section [pieces]
Section titled “Section [pieces]”One line per piece, sorted by number:
number=name|size|crc32| Part | Type | Meaning |
|---|---|---|
number | integer, 1 or more | Position of the piece in the set. |
name | text, escaped | File name of the piece, without a folder. |
size | integer | Size of the piece file in bytes. -1 if the value cannot be read. |
crc32 | hexadecimal | Standard CRC-32 of the piece file, 8 digits (0 if the value cannot be read). |
At least one valid line is required. A line without both | separators, with a number below 1 or with an empty name makes the file invalid.
Names from the file are not trusted
Section titled “Names from the file are not trusted”The .ini travels with the pieces, so the app does not trust the names in it. For name and for each piece name, only the part after the last / or \ is kept. On Windows, characters the file system refuses become _ and trailing dots and spaces are removed. An empty name, ., .., a control character or a Windows device name (CON, NUL, COM1…) gives united for the source and an invalid line for a piece. Every change is shown to the user before the run.
