Skip to content
GSplit

Self-Uniting companion .ini

Advanced reference

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.

  • Encoding: UTF-8, without a byte order mark.
  • One key=value per line, in [section] blocks. Values are not quoted.
  • A multi-line or special value is stored on one line, with these escapes:
SequenceMeaning
\nLine break
\\Backslash
\sA space at the start or end of the value (the reader trims values)
\xHHAny other control character, in hexadecimal
  • Booleans are 0 or 1. Absent, or anything else, means the default.
  • Text values that GSplit writes escaped are marked escaped in the tables below.
[gunite]
format=1
program=GUnite.exe
[set]
id={4f2c8a10-5b3e-4d6a-9c1f-0a7e2b9d3c55}
label=
title=Holiday video
author=Anna
description=Summer 2026
created=2026-10-21 19:30:05
[source]
name=film.bin
size=52428800
sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
pieceCount=6
pieceMask=disk{num}.gsd
firstPiece=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.com
destination=3
customFolder=
lockDestination=0
askOverwrite=1
openAfter=0
waitForEnd=0
deleteAfterRun=0
openParams=
autoClose=0
autoStart=0
silent=0
headerImage=
languageFile=
[pieces]
1=disk1.gsd|10485760|89ABCDEF
2=disk2.gsd|10485760|01234567
KeyTypeDefaultMeaning
formatinteger1Version of the format.
programtextemptyFile name of the app that was written.
KeyTypeDefaultMeaning
idtext, escapedemptyThe set identifier: the canonical UUID, in braces, that every V4 piece carries.
labeltext, escapedemptyThe identifier text you typed when it was not a UUID; empty otherwise.
titletext, escapedemptyTitle of the set.
authortext, escapedemptyAuthor.
descriptiontext, escapedemptyDescription.
createddate and timenoneDate of the split in local time, yyyy-mm-dd hh:nn:ss (19 characters). Any other length is ignored.

This section is required, with [pieces]; without either, the app refuses the file.

KeyTypeDefaultMeaning
nametext, escapedunitedFile name of the original, which is also the name of the restored file.
sizeinteger-1Size of the original in bytes.
sha256textemptySHA-256 of the original, 64 hexadecimal digits. Informative.
pieceCountinteger0Number of pieces. 0 means the number of lines in [pieces].
pieceMasktext, escapedemptyThe naming mask of the pieces, for example disk{num}.gsd.
firstPiecetext, escapedemptyFile name of piece 1. Written for readers; the app takes piece 1 from [pieces].

These keys come from the Operation page.

KeyTypeDefaultMeaning
welcometext, escapedemptyWelcome message. GSplit has already replaced the placeholders ({filename}, {desc}, {size}, {fullsize}, {piececount}, {author}).
messageAtStarttext, escapedemptyMessage shown at the start.
messageAtEndtext, escapedemptyMessage shown after a successful run.
abouttext, escapedemptyAbout message.
destinationinteger3Destination 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.
customFoldertext, escapedemptyFolder used with destination=5.
lockDestinationboolean0The user cannot change the destination folder.
askOverwriteboolean1Ask before replacing an existing output file.
openAfterboolean0Open the restored file (Windows).
waitForEndboolean0Wait for the program that opened the file.
deleteAfterRunboolean0Delete the restored file afterwards. Needs waitForEnd.
openParamstext, escapedemptyParameters passed to the program that opens the file.
autoCloseboolean0Close the app after a successful run.
autoStartboolean0Start without waiting for the user.
silentboolean0No window, no questions.
headerImagetext, escapedemptyFile name of the header image, next to the app.
languageFiletext, escapedemptyFile 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.

One line per piece, sorted by number:

number=name|size|crc32
PartTypeMeaning
numberinteger, 1 or morePosition of the piece in the set.
nametext, escapedFile name of the piece, without a folder.
sizeintegerSize of the piece file in bytes. -1 if the value cannot be read.
crc32hexadecimalStandard 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.

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.

Back to top

Screenshot