20230416
This commit is contained in:
parent
3f774d751f
commit
79b0df8609
@ -23,6 +23,84 @@ internal static class Executor
|
||||
WriteLine(args.Message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение параметров разбиения
|
||||
/// </summary>
|
||||
/// <param name="params">Парсер параметров</param>
|
||||
/// <returns>Список параметров <see cref="FileSplitOptions"/></returns>
|
||||
public static List<FileSplitOptions> GetSplitOptions (ConsoleParamsParser @params)
|
||||
{
|
||||
//Создаю результат
|
||||
List<FileSplitOptions> result = new();
|
||||
|
||||
//Проверяю параметры разбиения
|
||||
//- отключена ли проверка хэша
|
||||
if (@params.HasParam("/NoCheckHash"))
|
||||
result.Add(FileSplitOptions.fsoNoCheckHash);
|
||||
//- нужно ли удалять исходный файл
|
||||
if (@params.HasParam("/DeleteSource"))
|
||||
result.Add(FileSplitOptions.fsoDeleteSourceFileAfterSplit);
|
||||
//- нужно ли шифровать файл информации
|
||||
if (@params.HasParam("/EncryptInfoFile"))
|
||||
result.Add(FileSplitOptions.fsoEncryptInfoFile);
|
||||
|
||||
//Вывожу результат
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение параметров разбиения
|
||||
/// </summary>
|
||||
/// <param name="params">Массив параметров</param>
|
||||
/// <returns>Список параметров <see cref="FileSplitOptions"/></returns>
|
||||
public static List<FileSplitOptions> GetSplitOptions (string[] @params)
|
||||
{
|
||||
ConsoleParamsParser parser = new(@params);
|
||||
return GetSplitOptions(parser);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение параметров соединения
|
||||
/// </summary>
|
||||
/// <param name="params">Парсер параметров</param>
|
||||
/// <returns>Список параметров <see cref="FileJoinOptions"/></returns>
|
||||
public static List<FileJoinOptions> GetJoinOptions (ConsoleParamsParser @params)
|
||||
{
|
||||
//Создаю результат
|
||||
List<FileJoinOptions> result = new();
|
||||
|
||||
//Проверяю параметры разбиения
|
||||
//- отключена ли проверка хэша
|
||||
if (@params.HasParam("/NoCheckHash"))
|
||||
result.Add(FileJoinOptions.fjoNoCheckHash);
|
||||
//- нужно ли удалять исходные файлы
|
||||
if (@params.HasParam("/DeleteSource"))
|
||||
result.Add(FileJoinOptions.fjoDeleteSourceFilesAfterJoin);
|
||||
//- нужно ли дешифровать файл информации
|
||||
if (@params.HasParam("/DecryptInfoFile"))
|
||||
result.Add(FileJoinOptions.fjoInfoFileIsEncrypted);
|
||||
//- нужно ли отключить проверку версии файла информации
|
||||
if (@params.HasParam("/IgnoreVersion"))
|
||||
result.Add(FileJoinOptions.fjoIgnoreSupportedScriptVersion);
|
||||
//- нужно ли отключить проверку объединённого файла на корректность
|
||||
if (@params.HasParam("/SkipCheck"))
|
||||
result.Add(FileJoinOptions.fjoSkipCheckJoinedFile);
|
||||
|
||||
//Вывожу результат
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение параметров соединения
|
||||
/// </summary>
|
||||
/// <param name="params">Массив параметров</param>
|
||||
/// <returns>Список параметров <see cref="FileJoinOptions"/></returns>
|
||||
public static List<FileJoinOptions> GetJoinOptions (string[] @params)
|
||||
{
|
||||
ConsoleParamsParser parser = new(@params);
|
||||
return GetJoinOptions(parser);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Выполняю разбиение
|
||||
/// </summary>
|
||||
@ -52,10 +130,10 @@ internal static class Executor
|
||||
fileInfo.SplitCount);
|
||||
|
||||
//- получаю ответ
|
||||
string? userInput = ReadLine();
|
||||
string userInput = ReadInput("");
|
||||
|
||||
//- проверяю согласие
|
||||
if (userInput == null || userInput.ToLower() != "y")
|
||||
if (userInput != "y")
|
||||
//-- и прерываю, если не получил
|
||||
return FsExitCode.ecUserAborted;
|
||||
}
|
||||
@ -86,10 +164,10 @@ internal static class Executor
|
||||
WriteLine(Localization.MessageJoinAsk, targetFileName);
|
||||
|
||||
//- получаю ответ
|
||||
string? userInput = ReadLine();
|
||||
string userInput = ReadInput("");
|
||||
|
||||
//- проверяю согласие
|
||||
if (userInput == null || userInput.ToLower() != "y")
|
||||
if (userInput != "y")
|
||||
//-- и прерываю, если не получил
|
||||
return FsExitCode.ecUserAborted;
|
||||
}
|
||||
@ -110,13 +188,13 @@ internal static class Executor
|
||||
WriteLine(Localization.InteractiveStartAsk);
|
||||
|
||||
//Получаю ответ
|
||||
userInput = ReadLine() ?? string.Empty;
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Обработано ли решение
|
||||
bool handled = false;
|
||||
|
||||
//Обрабатываем выбор пользователя
|
||||
switch (userInput.ToLower())
|
||||
switch (userInput)
|
||||
{
|
||||
//Если пользователь выбрал разбиение
|
||||
case "s":
|
||||
@ -131,6 +209,35 @@ internal static class Executor
|
||||
handled = true;
|
||||
break;
|
||||
}
|
||||
|
||||
//Если пользователь выбрал соединение
|
||||
case "j":
|
||||
{
|
||||
//- то запускаем соединение
|
||||
FsExitCode joinExitCode = DoJoinInteractive();
|
||||
|
||||
//- вывожу сообщение
|
||||
WriteLine(Localization.InteractiveOperationFinish, Localization.ExitCodeNames.First(eCode => eCode.Item1 == joinExitCode).Item2);
|
||||
|
||||
//- указываем на перехват
|
||||
handled = true;
|
||||
break;
|
||||
}
|
||||
|
||||
//Если пользователь выбрал опции
|
||||
case "o":
|
||||
{
|
||||
//- то запускаем опции
|
||||
FsExitCode optionsExitCode = DoOptionsInteractive();
|
||||
|
||||
//- вывожу сообщение
|
||||
WriteLine(Localization.InteractiveOperationFinish, Localization.ExitCodeNames.First(eCode => eCode.Item1 == optionsExitCode).Item2);
|
||||
|
||||
//- указываем на перехват
|
||||
handled = true;
|
||||
break;
|
||||
}
|
||||
|
||||
//Если пользователь указал на выход
|
||||
case "e":
|
||||
//- то указываем на перехват
|
||||
@ -154,7 +261,7 @@ internal static class Executor
|
||||
/// <returns><see cref="FsExitCode"/></returns>
|
||||
public static FsExitCode DoSplitInteractive ()
|
||||
{
|
||||
//Пользовательский ввод
|
||||
//Класс локализации
|
||||
string userInput;
|
||||
|
||||
//Обработан ли ввод
|
||||
@ -168,7 +275,7 @@ internal static class Executor
|
||||
WriteLine(Localization.InteractiveSplitFileNameAsk);
|
||||
|
||||
//Считываю имя файла
|
||||
userInput = ReadLine() ?? string.Empty;
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Если файл не существует
|
||||
if (!File.Exists(userInput))
|
||||
@ -177,7 +284,7 @@ internal static class Executor
|
||||
WriteLine(Localization.InteractiveFileNameNotExist);
|
||||
|
||||
//- считываю ответ
|
||||
userInput = ReadLine() ?? string.Empty;
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//- если выбрано не повторять
|
||||
if (userInput.ToLower() != "y")
|
||||
@ -203,7 +310,7 @@ internal static class Executor
|
||||
WriteLine(Localization.InteractiveSplitTargetDirAsk);
|
||||
|
||||
//Считываю данные
|
||||
userInput = ReadLine() ?? string.Empty;
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Если вместо папки пустое место
|
||||
if (string.IsNullOrWhiteSpace(userInput))
|
||||
@ -236,16 +343,13 @@ internal static class Executor
|
||||
WriteLine(Localization.InteractiveSplitPartSizeAsk);
|
||||
|
||||
//Считываю размер части
|
||||
userInput = ReadLine() ?? fileSize.ToString();
|
||||
|
||||
//Задаю размер части
|
||||
partSize = TypeConverter.StrToInt64(userInput, fileSize);
|
||||
partSize = ReadInput(fileSize);
|
||||
|
||||
//Запрашиваю согласие на размер части
|
||||
WriteLine(Localization.InteractiveSplitPartSizeAsk2, converter.Convert(partSize));
|
||||
|
||||
//Считываю ответ
|
||||
userInput = ReadLine() ?? string.Empty;
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Если согласен, то выхожу из цикла
|
||||
if (userInput.ToLower() == "y")
|
||||
@ -256,33 +360,200 @@ internal static class Executor
|
||||
WriteLine(Localization.InteractiveSplitPartSizeResult, converter.Convert(partSize));
|
||||
|
||||
/* Опции разбиения */
|
||||
//Ввожу переменную опций разбиения
|
||||
List<FileSplitOptions> options = new();
|
||||
|
||||
//Запрос опций разбиения
|
||||
WriteLine(Localization.InteractiveSplitOptionsAsk);
|
||||
|
||||
//Считываю опции разбиения
|
||||
userInput = (ReadLine() ?? string.Empty).ToLower().Trim();
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Инициализирую список параметров
|
||||
ConsoleParamsParser @params = new(userInput.Split(' '));
|
||||
|
||||
//Проверяю параметры разбиения
|
||||
//- отключена ли проверка хэша
|
||||
if (@params.HasParam("/NoCheckHash"))
|
||||
options.Add(FileSplitOptions.fsoNoCheckHash);
|
||||
//- нужно ли удалять исходный файл
|
||||
if (@params.HasParam("/DeleteSource"))
|
||||
options.Add(FileSplitOptions.fsoDeleteSourceFileAfterSplit);
|
||||
//- нужно ли шифровать файл информации
|
||||
if (@params.HasParam("/EncryptInfoFile"))
|
||||
options.Add(FileSplitOptions.fsoEncryptInfoFile);
|
||||
//Ввожу переменную опций разбиения
|
||||
List<FileSplitOptions> options = GetSplitOptions(userInput.Split(' '));
|
||||
|
||||
//Вывожу информацию о выборе параметров
|
||||
WriteLine(Localization.InteractiveSplitOptionsResult, userInput);
|
||||
|
||||
/* Выполнение разбиения */
|
||||
//Вывожу информацию о начале работы
|
||||
WriteLine(Localization.MessagePleaseWaitToReady);
|
||||
|
||||
//Выполняю операцию
|
||||
return DoSplit(fileName, targetDir, partSize, false, options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Интерактивное соединение файла
|
||||
/// </summary>
|
||||
/// <returns><see cref="FsExitCode"/></returns>
|
||||
public static FsExitCode DoJoinInteractive ()
|
||||
{
|
||||
//Класс локализации
|
||||
string userInput;
|
||||
|
||||
//Обработан ли ввод
|
||||
bool isHandled = false;
|
||||
|
||||
/* Имя файла информации о разбиении */
|
||||
//Выбор имени файла
|
||||
do
|
||||
{
|
||||
//Запрос имени файла
|
||||
WriteLine(Localization.InteractiveJoinFileNameAsk);
|
||||
|
||||
//Считываю имя файла
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Если файл не существует
|
||||
if (!File.Exists(userInput))
|
||||
{
|
||||
//- то запрашиваю действие
|
||||
WriteLine(Localization.InteractiveFileNameNotExist);
|
||||
|
||||
//- считываю ответ
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//- если выбрано не повторять
|
||||
if (userInput.ToLower() != "y")
|
||||
//-- то прерываю операцию
|
||||
return FsExitCode.ecUserAborted;
|
||||
}
|
||||
else
|
||||
{
|
||||
//В противном случае, считаю ввод корректным
|
||||
isHandled = true;
|
||||
}
|
||||
} while (!isHandled);
|
||||
|
||||
//Ввожу переменную с именем файла
|
||||
string fileName = userInput;
|
||||
|
||||
//Вывожу информацию о выборе файла
|
||||
WriteLine(Localization.InteractiveJoinFileNameResult, fileName);
|
||||
|
||||
/* Целевой файл */
|
||||
|
||||
//Выбор целевого файла
|
||||
do
|
||||
{
|
||||
//Запрос имени файла
|
||||
WriteLine(Localization.InteractiveJoinTargetFileNameAsk);
|
||||
|
||||
//Считываю имя файла
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Если файл существует
|
||||
if (File.Exists(userInput))
|
||||
{
|
||||
//- то запрашиваю действие
|
||||
WriteLine(Localization.InteractiveFileNameExist);
|
||||
|
||||
//- считываю ответ
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//- если выбрано не повторять
|
||||
if (userInput.ToLower() != "y")
|
||||
//-- то прерываю операцию
|
||||
return FsExitCode.ecUserAborted;
|
||||
}
|
||||
else
|
||||
{
|
||||
//В противном случае, считаю ввод корректным
|
||||
isHandled = true;
|
||||
}
|
||||
} while (!isHandled);
|
||||
|
||||
//Ввожу переменную с именем файла
|
||||
string targetFileName = userInput;
|
||||
|
||||
//Вывожу информацию о выборе целевого файла
|
||||
WriteLine(Localization.InteractiveJoinTargetFileNameResult, fileName);
|
||||
|
||||
/* Опции соединения */
|
||||
//Запрос опций соединения
|
||||
WriteLine(Localization.InteractiveJoinOptionsAsk);
|
||||
|
||||
//Считываю опции соединения
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Ввожу переменную опций соединения
|
||||
List<FileJoinOptions> options = GetJoinOptions(userInput.Split(' '));
|
||||
|
||||
//Вывожу информацию о выборе параметров
|
||||
WriteLine(Localization.InteractiveJoinOptionsResult, userInput);
|
||||
|
||||
/* Выполнение соединения */
|
||||
//Вывожу информацию о начале работы
|
||||
WriteLine(Localization.MessagePleaseWaitToReady);
|
||||
|
||||
//Выполняю операцию
|
||||
return DoJoin(fileName, targetFileName, false, options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Интерактивные опции
|
||||
/// </summary>
|
||||
/// <returns><see cref="FsExitCode"/></returns>
|
||||
public static FsExitCode DoOptionsInteractive ()
|
||||
{
|
||||
//Класс локализации
|
||||
FileSplitterConsoleOptions options = new();
|
||||
|
||||
//Загружаю опции
|
||||
options.Load();
|
||||
|
||||
//Вывожу запрос на изменение настроек
|
||||
WriteLine(Localization.InteractiveOptionsAsk);
|
||||
|
||||
//Считываю опции
|
||||
string userInput = ReadInput(string.Empty);
|
||||
|
||||
//Создаю парсер опций
|
||||
ConsoleParamsParser parser = new(userInput.Split(' '));
|
||||
|
||||
//Сохраняю опции
|
||||
//- язык
|
||||
if (parser.HasParam("language"))
|
||||
{
|
||||
//-- получаю значение языка
|
||||
string language = (parser.GetValue("language") ?? "russian").Trim(new []{'"'});
|
||||
|
||||
//-- и если файл существует
|
||||
if (File.Exists($"languages\\{language}.json"))
|
||||
//--- то устанавливаю его
|
||||
options.Language = language;
|
||||
}
|
||||
|
||||
//Вывожу запрос на подтверждение
|
||||
WriteLine(Localization.InteractiveOptionsConfirm, userInput);
|
||||
|
||||
//Считываю опции
|
||||
userInput = ReadInput(string.Empty);
|
||||
|
||||
//Если не подтверждено
|
||||
if (userInput != "y")
|
||||
//- то прерываю
|
||||
return FsExitCode.ecUserAborted;
|
||||
|
||||
//Сохраняю опции
|
||||
options.Save();
|
||||
|
||||
//Вывожу информацию об успешном сохранении
|
||||
WriteLine(Localization.InteractiveOptionsResult);
|
||||
|
||||
//Вывожу результат
|
||||
return FsExitCode.ecAllDone;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Чтение строкового значения
|
||||
/// </summary>
|
||||
/// <param name="defaultValue">Значение по умолчанию</param>
|
||||
/// <returns>Ввод пользователя в формате <see cref="string"/></returns>
|
||||
private static string ReadInput (string defaultValue = "") => (ReadLine() ?? defaultValue).Trim(new[] { '"' }).ToLower();
|
||||
|
||||
/// <summary>
|
||||
/// Чтение численного значения
|
||||
/// </summary>
|
||||
/// <param name="defaultValue">Значение по умолчанию</param>
|
||||
/// <returns>Ввод пользователя в формате <see cref="long"/></returns>
|
||||
private static long ReadInput (long defaultValue = 0) => TypeConverter.StrToInt64(ReadLine() ?? defaultValue.ToString(), defaultValue);
|
||||
}
|
@ -9,7 +9,7 @@
|
||||
<AssemblyName>FileSplitter</AssemblyName>
|
||||
<PackageId>FileSplitter</PackageId>
|
||||
<Title>ANB Software File Splitter Console</Title>
|
||||
<Version>2023.04.09</Version>
|
||||
<Version>2023.04.16</Version>
|
||||
<Authors>Alexander Babaev</Authors>
|
||||
<Product>ANB Software File Splitter</Product>
|
||||
<Description>Console App for ANB Software File Splitter. Split and join any file.</Description>
|
||||
@ -28,7 +28,18 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Classes\" />
|
||||
<None Update="help\english.html">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="help\russian.html">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="languages\english.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="languages\russian.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@ -56,18 +56,7 @@ static int FileSplit4Params (ConsoleParamsParser @params)
|
||||
//- размер части
|
||||
long partSize = TypeConverter.StrToInt64(@params.GetValue("-ps") ?? string.Empty);
|
||||
//- параметры
|
||||
List<FileSplitOptions> options = new();
|
||||
|
||||
//Проверяю параметры разбиения
|
||||
//- отключена ли проверка хэша
|
||||
if (@params.HasParam("/NoCheckHash"))
|
||||
options.Add(FileSplitOptions.fsoNoCheckHash);
|
||||
//- нужно ли удалять исходный файл
|
||||
if (@params.HasParam("/DeleteSource"))
|
||||
options.Add(FileSplitOptions.fsoDeleteSourceFileAfterSplit);
|
||||
//- нужно ли шифровать файл информации
|
||||
if (@params.HasParam("/EncryptInfoFile"))
|
||||
options.Add(FileSplitOptions.fsoEncryptInfoFile);
|
||||
List<FileSplitOptions> options = Executor.GetSplitOptions(@params);
|
||||
|
||||
//Получаю параметры консоли
|
||||
bool silent = @params.HasParam("--silent");
|
||||
@ -95,24 +84,7 @@ static int FileJoin4Params (ConsoleParamsParser @params)
|
||||
//- имя целевого файла
|
||||
string targetFileName = @params.GetValue("-tfn") ?? string.Empty;
|
||||
//- параметры
|
||||
List<FileJoinOptions> options = new();
|
||||
|
||||
//Проверяю параметры разбиения
|
||||
//- отключена ли проверка хэша
|
||||
if (@params.HasParam("/NoCheckHash"))
|
||||
options.Add(FileJoinOptions.fjoNoCheckHash);
|
||||
//- нужно ли удалять исходные файлы
|
||||
if (@params.HasParam("/DeleteSource"))
|
||||
options.Add(FileJoinOptions.fjoDeleteSourceFilesAfterJoin);
|
||||
//- нужно ли дешифровать файл информации
|
||||
if (@params.HasParam("/DecryptInfoFile"))
|
||||
options.Add(FileJoinOptions.fjoInfoFileIsEncrypted);
|
||||
//- нужно ли отключить проверку версии файла информации
|
||||
if (@params.HasParam("/IgnoreVersion"))
|
||||
options.Add(FileJoinOptions.fjoIgnoreSupportedScriptVersion);
|
||||
//- нужно ли отключить проверку объединённого файла на корректность
|
||||
if (@params.HasParam("/SkipCheck"))
|
||||
options.Add(FileJoinOptions.fjoSkipCheckJoinedFile);
|
||||
List<FileJoinOptions> options = Executor.GetJoinOptions(@params);
|
||||
|
||||
//Получаю параметры консоли
|
||||
bool silent = @params.HasParam("--silent");
|
||||
|
369
FileSplitter/help/english.html
Normal file
369
FileSplitter/help/english.html
Normal file
@ -0,0 +1,369 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>«ANB Software File Splitter» help</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>
|
||||
ANB Software File Splitter
|
||||
</h1>
|
||||
<h2>
|
||||
Version 0.5 (2023.04.16)
|
||||
<br />
|
||||
Copyrights © 2023 by Alewxander Babaev.
|
||||
</h2>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="toc"></a>
|
||||
<h3>Content</h3>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<a href="#description">Description</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#license">License</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#split">How to use: Split file</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#join">How to use: Join Files</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#options">How to use: Application Parameters</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#ConsoleParams">How to use: Console Line Parameters</a>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="description"></a>
|
||||
<h3>Description</h3>
|
||||
<p>
|
||||
<strong>ANB Software File Splitter</strong> allows you to divide a file into the nth number of files of a given
|
||||
volume without archiving the data, and then assemble it into a single file, if you need it.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The program works in two modes: 1) using command line parameters; 2) interactive mode.
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
<a name="license"></a>
|
||||
<h3>END USER LICENSE AGREEMENT (EULA)</h3>
|
||||
|
||||
<p>(Version 1.0)</p>
|
||||
|
||||
<h4>DEFINITIONS</h4>
|
||||
|
||||
<p>
|
||||
ANB Software File Splitter (hereinafter referred to as "product") - a program and/or a component of the program
|
||||
and/or other (game, image, film, etc.), to which this agreement applies.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
End User (hereinafter referred to as "you" or "user") is a person and/or organization that uses the product,
|
||||
provided under this license.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Alexander Babaev (hereinafter referred to as "Manufacturer") - the person and/or organization that produced the
|
||||
product.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
LIMITATIONS
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Some States (districts, regions, states) do not allow the limitation or exclusion of liability for unforeseen
|
||||
damage. If your country (district, region, state) does not imply limitation or exclusion of liability for
|
||||
unforeseen damages, then this agreement cannot apply to you. In this case, refuse to use the product.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Some States (districts, regions, states) do not allow the exclusion of implied warranties. If your country
|
||||
(district, region, state) does not imply the exclusion of implied warranties that this agreement may not apply
|
||||
to you. In this case, refuse to use the product.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
SUBJECT OF THE AGREEMENT
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
This agreement is concluded between the Manufacturer of the product and the User of the product. This agreement
|
||||
defines the relationship between the Manufacturer and the User arising from the use of the product.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
LICENSE
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
The product is distributed on the principle of "AS-IS" ("AS IS"). The author does not bear ANY RESPONSIBILITY in
|
||||
case this program causes physical, material or any other harm to you and your computer. You install the product
|
||||
at your own risk. The manufacturer and/or Distributor does not bear any responsibility for errors, malfunctions
|
||||
(etc.) caused by the product to your computer.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You can use this program at your discretion, as well as copy and distribute with a link to the author and the
|
||||
website "https://babaev-an.ru/". You are prohibited from copying, distributing the product without a link to the
|
||||
author and the previously specified site. You are prohibited from copying and using the product if the copy of
|
||||
the product you are installing does not have a link to the author and the previously specified site. You are
|
||||
prohibited from changing the contents of the product, disassembling, disassembling and modifying the product,
|
||||
using its components in other programs without the written agreement of the Manufacturer, removing or correcting
|
||||
any proprietary and/or copyright marks in the product.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
IF YOU DOWNLOAD, COPY THE PRODUCT OR USE IT IN ANY OTHER WAY, YOU HEREBY CONFIRM YOUR AGREEMENT TO COMPLY WITH
|
||||
THE TERMS OF THIS END USER LICENSE AGREEMENT. IF YOU DO NOT AGREE, DO NOT INSTALL, COPY, OR USE THE PRODUCT.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
COPYRIGHT
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
The copyright for all copies of the product belongs to the Manufacturer and is protected by the legislation of
|
||||
the Russian Federation and a number of other countries.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
LIMITED WARRANTY AND DISCLAIMER
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
You are not given any guarantees. All your possible demands, claims and claims (including on quality) will be
|
||||
UNRECOGNIZED.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
LIMITATION OF LIABILITY
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
You are not given any obligations. All your possible requirements will be UNRECOGNIZED.
|
||||
</p>
|
||||
<hr />
|
||||
|
||||
<a name="split"></a>
|
||||
<h3>How to use: Split file</h3>
|
||||
<p>
|
||||
The "File Splitting" operation is used to split a certain file (hereinafter, the source file) into n parts,
|
||||
given size. It requires the following parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>-fn="file name"</code> - name of the source file.
|
||||
</li>
|
||||
<li>
|
||||
<code>-td="path"</code> - the folder where the parts of the file will be saved.
|
||||
</li>
|
||||
<li>
|
||||
<code>-ps=«number»</code> - the size of a part of the file in bytes.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
In interactive mode, the user will be interviewed for each parameter.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The "File Splitting" operation may contain the following additional splitting parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>/NoCheckHash</code> - don't check parts for matching checksums.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DeleteSource</code> - after splitting, the source file is deleted.
|
||||
</li>
|
||||
<li>
|
||||
<code>/EncryptInfoFile</code> - whether the information file needs to be encrypted.
|
||||
<strong>ATTENTION!</strong> Enabling this parameter obliges you to specify the parameter in the additional
|
||||
assembly parameters during assembly <code>/DecryptInfoFile</code>. Otherwise, you will get <strong> return
|
||||
code 3</strong> when trying assemble the file.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Parameters are entered separated by a space, both in command-line parameters mode and in interactive mode.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For example, you need to split the <code>C file:\MyFiles\myBigFile.mp4</code> to 10 MB files and save files
|
||||
partitions to the <code>C folder:\myFilesSplited\</code> by deleting the source code, encrypting the split
|
||||
information file and not giving the user no requests. Then you should run the program in the following way:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter split -fn="C:\myFiles\myBigFile.mp4" -td="C:\myFilesSplited" -ps=10485760 /DeleteSource /EncryptInfoFile --silent
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="join"></a>
|
||||
<h3>How to use: Join Files</h3>
|
||||
<p>
|
||||
The "Join files" operation connects the file that was previously split using the "Split File" operation. She
|
||||
demands the following parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>-ifn="Имя файла"</code> - the name of the file with information about the split.
|
||||
</li>
|
||||
<li>
|
||||
<code>-tfn="Путь"</code> - the file to build the split into.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
In interactive mode, the user will be interviewed for each parameter.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The "Join Files" operation may contain the following additional assembly parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>/NoCheckHash</code> - don't check parts for matching checksums.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DeleteSource</code> - after joining, the split files are deleted.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DecryptInfoFile</code> - whether to decrypt the information file. <strong>ATTENTION!</strong>
|
||||
Enabling this parameter obliges you to specify the parameter in the additional splitting parameters when
|
||||
splitting <code>/EncryptInfoFile</code>. Otherwise, you will get <strong> return code 3</strong> when trying
|
||||
joining the file.
|
||||
</li>
|
||||
<li>
|
||||
<code>/IgnoreVersion</code> - disable checking the version of the information file (NOT RECOMMENDED).
|
||||
</li>
|
||||
<li>
|
||||
<code>/SkipCheck</code> - disable checking the collected file for compliance with the original.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Parameters are entered separated by a space, both in command-line parameters mode and in interactive mode.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For example, you need to merge the file specified by the information
|
||||
<code>C:\myFilesSplitter\myBigFile.mp4.fsi</code>, to file <code>C:\MyFiles\myBigFile.mp4</code> by deleting the
|
||||
split files, decrypting the split information file and disabling checking the collected file for compliance with
|
||||
the original. Then you should run the program in the following way:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter join -ifn="C:\myFilesSplited\myBigFile.mp4.fsi" -tfn="C:\myFiles\myBigFile.mp4" /DeleteSource /DecryptInfoFile /SkipCheck
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="options"></a>
|
||||
<h3>How to use: Application Parameters</h3>
|
||||
<p>
|
||||
The operation "Application Parameters" allows you to configure application parameters and works <strong> only in
|
||||
interactive mode</strong>. It requires the following parameters:
|
||||
</p>
|
||||
|
||||
<table style="text-align: center; border: 2px solid black;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Parameter
|
||||
</th>
|
||||
<th>
|
||||
Possible values
|
||||
</th>
|
||||
<th>
|
||||
Description
|
||||
</th>
|
||||
<th>
|
||||
Example
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
language
|
||||
</td>
|
||||
<td>
|
||||
String (language file name)
|
||||
</td>
|
||||
<td>
|
||||
Sets the application language
|
||||
</td>
|
||||
<td>
|
||||
language=russian
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr />
|
||||
|
||||
<a name="ConsoleParams"></a>
|
||||
<h3>How to use: Console Line Parameters</h3>
|
||||
<p>
|
||||
To use the program in command line parameters mode, run the program by passing command line parameters in the
|
||||
format:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter [OPERATION] [OPERATION PARAMETERS] [ADDITIONAL PARAMETERS] [SILENT MODE]
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
[OPERATION] can take the following values:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>split</code> - perform <a href="#split">split operation</a>.
|
||||
</li>
|
||||
<li>
|
||||
<code>join</code> - perform <a href="#join">join operation</a>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
[OPERATION PARAMETERS] and [ADDITIONAL PARAMETERS] are described in the corresponding help sections.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
[SILENT MODE] works only in command line parameters mode and is enabled by specifying:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<code>--silent</code> - the presence of this parameter indicates that no requests should be issued to the
|
||||
user (the so-called "Silent mode").
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
To turn off the silent mode, simply do not specify this parameter.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
372
FileSplitter/help/russian.html
Normal file
372
FileSplitter/help/russian.html
Normal file
@ -0,0 +1,372 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="ru" xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Справка по программе «ANB Software Делитель файлов»</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>
|
||||
ANB Software Делитель файлов
|
||||
</h1>
|
||||
<h2>
|
||||
Версия 0.5 (2023.04.16)
|
||||
<br />
|
||||
Авторские права © 2023, Александр Бабаев.
|
||||
</h2>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="toc"></a>
|
||||
<h3>Содержание</h3>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<a href="#description">Описание</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#license">Лицензия</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#split">Как использовать: Разделение файлов</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#join">Как использовать: Объединение файлов</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#options">Как использовать: Параметры приложения</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#ConsoleParams">Как использовать: Параметры консольной строки</a>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="description"></a>
|
||||
<h3>Описание</h3>
|
||||
<p>
|
||||
<strong>ANB Software Делитель Файлов</strong> позволяет разделить файл на n-ое количество файлов заданного
|
||||
объема без архивации данных, а также потом собрать в единый файл, если вам понадобится.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Программа работает в двух режимах: 1) с помощью параметров командной строки; 2) интерактивный режим.
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
<a name="license"></a>
|
||||
<h3>ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ С КОНЕЧНЫМ ПОЛЬЗОВАТЕЛЕМ (EULA)</h3>
|
||||
|
||||
<p>(Версия 1.0)</p>
|
||||
|
||||
<h4>ОПРЕДЕЛЕНИЯ</h4>
|
||||
|
||||
<p>
|
||||
ANB Software File Splitter (далее "продукт") - программа и/или компонент программы и/или другое (игра,
|
||||
изображение, фильм и т.п.), на которое распространяется данное соглашение.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Конечный пользователь (далее "вы" или "пользователь") - лицо и/или организация, которое(-ая) использует продукт,
|
||||
предоставляемый под этой лицензией.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Александр Бабаев (далее "Производитель") - лицо и/или организация, которое(-ая) произвело продукт.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ОГРАНИЧЕНИЯ
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
В некоторых государствах (районах, областях, штатах) не позволяется ограничение или исключение ответственности
|
||||
за непредвиденный ущерб. Если ваша страна (район, область, штат) не подразумевает ограничение или исключение
|
||||
ответственности за непредвиденный ущерб, то данное соглашение не может применяться к вам. В этом случае
|
||||
откажитесь от использования продукта.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
В некоторых государствах (районах, областях, штатах) не позволяется исключение подразумеваемых гарантий. Если
|
||||
ваша страна (район, область, штат) не подразумевает исключение подразумеваемых гарантий, то данное соглашение не
|
||||
может применяться к вам. В этом случае откажитесь от использования продукта.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ПРЕДМЕТ СОГЛАШЕНИЯ
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Данное соглашение заключается между Производителем продукта и Пользователем продукта. Данное соглашение
|
||||
определяет отношения между Производителем и Пользователем, возникающие при использовании продукта.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ЛИЦЕНЗИЯ
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Продукт распространяется по принципу "AS-IS" ("КАК ЕСТЬ"). Автор не несет НИКАКОЙ ОТВЕТСТВЕННОСТИ в случае
|
||||
нанесения данной программой физического, материального или любого другого вреда вам и вашему компьютеру. Вы на
|
||||
свой страх и риск устанавливаете продукт. Производитель и/или Распространитель не несет(-ут) никакой
|
||||
ответственности за ошибки, неисправности (и т.п.), нанесенные продуктом вашему компьютеру.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Вы можете использовать данную программу на свое усмотрение, а также копировать и распространять со ссылкой на
|
||||
автора и сайт "https://babaev-an.ru/". Вам запрещается копировать, распространять продукт без ссылки на автора и
|
||||
указанный ранее сайт. Вам запрещается копирование и использование продукта, если устанавливаемая вами копия
|
||||
продукта не имеет ссылки на автора и указанный ранее сайт. Вам запрещается изменять содержимое продукта,
|
||||
разбирать, дизассемблировать и изменять продукт, использовать её компоненты в других программах без письменного
|
||||
соглашения Производителя, удалять или исправлять в продукте любые знаки о праве собственности и/или авторском
|
||||
праве на продукт.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
ЕСЛИ ВЫ ЗАГРУЖАЕТЕ, КОПИРУЕТЕ ПРОДУКТ ИЛИ ИСПОЛЬЗУЕТЕ ЕГО КАКИМ-ЛИБО ДРУГИМ СПОСОБОМ, ЭТИМ ВЫ ПОДТВЕРЖДАЕТЕ СВОЕ
|
||||
СОГЛАСИЕ СОБЛЮДАТЬ УСЛОВИЯ ДАННОГО ЛИЦЕНЗИОННОГО СОГЛАШЕНИЯ С КОНЕЧНЫМ ПОЛЬЗОВАТЕЛЕМ. ЕСЛИ ВЫ НЕ СОГЛАСНЫ, НЕ
|
||||
УСТАНАВЛИВАЙТЕ, НЕ КОПИРУЙТЕ И НЕ ИСПОЛЬЗУЙТЕ ПРОДУКТ.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
АВТОРСКОЕ ПРАВО
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Авторское право на все копии продукта принадлежат Производителю и защищено законодательством РФ и ряда других
|
||||
стран.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ОГРАНИЧЕННАЯ ГАРАНТИЯ И ПРАВОВАЯ ОГОВОРКА
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Вам не дается никаких гарантий. Все ваши возможные требования, притязания и претензии (в том числе и по
|
||||
качеству) будут НЕПРИЗНАННЫ.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Вам не дается никаких обязательств. Все ваши возможные требования будут НЕПРИЗНАННЫ.
|
||||
</p>
|
||||
<hr />
|
||||
|
||||
<a name="split"></a>
|
||||
<h3>Как использовать: Разделение файлов</h3>
|
||||
<p>
|
||||
Операция «Разделение файлов» служит для разбиения некоторого файла (далее, исходный файл) на n частей, заданного
|
||||
размера. Она требует следующих параметров:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>-fn="Имя файла"</code> - имя исходного файла.
|
||||
</li>
|
||||
<li>
|
||||
<code>-td="Путь"</code> - папка, в которую будут сохранены части файла.
|
||||
</li>
|
||||
<li>
|
||||
<code>-ps=«ЧИСЛО»></code> - размер части файла в байтах.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
В интерактивном режиме пользователь будет опрошен по каждому параметру.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Операция «Разделение файлов» может содержать следующие дополнительные параметры разбиения:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>/NoCheckHash</code> - не проверять части на совпадение с контрольными суммами.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DeleteSource</code> - после разбиения удаляется исходный файл.
|
||||
</li>
|
||||
<li>
|
||||
<code>/EncryptInfoFile</code> - нужно ли шифровать файл информации. <strong>ВНИМАНИЕ!</strong> Включение
|
||||
этого параметра обязывает Вас при сборке указывать в дополнительных параметрах сборки параметр
|
||||
<code>/DecryptInfoFile</code>. В противном случае, вы словите <strong>код возврата 3</strong> при попытке
|
||||
собрать файл.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Параметры вводятся через пробел, как в режиме параметров командной строки, так и в интерактивномрежиме.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Например, нужно разбить файл <code>C:\myFiles\myBigFile.mp4</code> на файлы размером 10 МБайт и сохранить файлы
|
||||
разбиения в папку <code>C:\myFilesSplited\</code>, удалив исходник, зашифровав файл информации о разбиении и не
|
||||
выдавая пользователю никаких запросов. Тогда вы должны запустить программу следующим способом:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter split -fn="C:\myFiles\myBigFile.mp4" -td="C:\myFilesSplited" -ps=10485760 /DeleteSource /EncryptInfoFile --silent
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="join"></a>
|
||||
<h3>Как использовать: Объединение файлов</h3>
|
||||
<p>
|
||||
Операция «Объединение файлов» соединяет разбитый ранее с помощью операции «Разделения файла» файл. Она требует
|
||||
следующих параметров:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>-ifn="Имя файла"</code> - имя файла с информацией о разбиении.
|
||||
</li>
|
||||
<li>
|
||||
<code>-tfn="Путь"</code> - файл, в который нужно собрать разбиение.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
В интерактивном режиме пользователь будет опрошен по каждому параметру.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Операция «Объединение файлов» может содержать следующие дополнительные параметры сборки:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>/NoCheckHash</code> - не проверять части на совпадение с контрольными суммами.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DeleteSource</code> - после объединения удаляются файлы разбиения.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DecryptInfoFile</code> - нужно ли дешифровать файл информации. <strong>ВНИМАНИЕ!</strong> Включение
|
||||
этого параметра обязывает Вас при разбивке указывать в дополнительных параметрах разбиения параметр
|
||||
<code>/EncryptInfoFile</code>. В противном случае, вы словите <strong>код возврата 3</strong> при попытке
|
||||
собрать файл.
|
||||
</li>
|
||||
<li>
|
||||
<code>/IgnoreVersion</code> - отключить проверку версии файла информации (НЕ РЕКОМЕНДУЕТСЯ).
|
||||
</li>
|
||||
<li>
|
||||
<code>/SkipCheck</code> - отключить проверку собранного файла на соответствие оригиналу.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Параметры вводятся через пробел, как в режиме параметров командной строки, так и в интерактивномрежиме.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Например, нужно объединить файл, заданный информацией <code>C:\myFilesSplited\myBigFile.mp4.fsi</code>, в файл
|
||||
<code>C:\myFiles\myBigFile.mp4</code>, удалив файлы разбиения, дешифровав файл информации о разбиении и отключив
|
||||
проверку собранного файла на соответствие оригиналу. Тогда вы должны
|
||||
запустить программу следующим способом:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter join -ifn="C:\myFilesSplited\myBigFile.mp4.fsi" -tfn="C:\myFiles\myBigFile.mp4" /DeleteSource /DecryptInfoFile /SkipCheck
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="options"></a>
|
||||
<h3>Как использовать: Параметры приложения</h3>
|
||||
<p>
|
||||
Операция «Параметры приложения» позволяет настроить параметры приложения и работает <strong>только в
|
||||
интерактивном режиме</strong>. Она требует
|
||||
следующих параметров:
|
||||
</p>
|
||||
|
||||
<table style="text-align: center; border: 2px solid black;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Параметр
|
||||
</th>
|
||||
<th>
|
||||
Возможные значение
|
||||
</th>
|
||||
<th>
|
||||
Описание
|
||||
</th>
|
||||
<th>
|
||||
Пример
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
language
|
||||
</td>
|
||||
<td>
|
||||
Строка (имя файла языка)
|
||||
</td>
|
||||
<td>
|
||||
Задаёт язык приложения
|
||||
</td>
|
||||
<td>
|
||||
language=russian
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr />
|
||||
|
||||
<a name="ConsoleParams"></a>
|
||||
<h3>Как использовать: Параметры консольной строки</h3>
|
||||
<p>
|
||||
Для использования программы в режиме параметров командной строки запустите программу, передав параметры
|
||||
командной строки в формате:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter [ОПЕРАЦИЯ] [ПАРАМЕТРЫ ОПЕРАЦИИ] [ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ] [ТИХИЙ РЕЖИМ]
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
[ОПЕРАЦИЯ] может принимать следующие значения:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>split</code> - выполнить <a href="#split">операцию разделения</a>.
|
||||
</li>
|
||||
<li>
|
||||
<code>join</code> - выполнить <a href="#join">операцию объединения</a>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
[ПАРАМЕТРЫ ОПЕРАЦИИ] и [ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ] описаны в соответствующих разделах справки.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
[ТИХИЙ РЕЖИМ] работает только в режиме параметров командной строки и включается указанием:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<code>--silent</code> - наличие этого параметра указывает, что не должны выдаваться никакие запросы
|
||||
пользователю (так называемый «Тихий режим»).
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Для выключения тихого режима просто не указывайте этот параметр.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
70
FileSplitter/languages/english.json
Normal file
70
FileSplitter/languages/english.json
Normal file
@ -0,0 +1,70 @@
|
||||
{
|
||||
//This file was translated with Yandex Translator (https://translate.yandex.ru/)
|
||||
//Application Parameters
|
||||
"AppTitle": "ANB Software File Splitter",
|
||||
"AppVersion": "Version: {0}",
|
||||
"AppCopyrights": "Copyrights (C) {0} by Alexander Babaev.",
|
||||
|
||||
//Messages
|
||||
"MessageNoParametersForSplit": "Split parameters are not set. For information about working with the program, see the file «<program's folder>\\Help\\English.html#ConsoleParams»",
|
||||
"MessageSplitAsk": "Information about splitting file:\n***{0}\n***Size: {1}\n***File hash: {2}\n***It is assumed to split into {3} parts(s)\nDo you want to start split? [Y|y - yes, any other letter - no]",
|
||||
"MessageStartSplit": "The splitting of the file {0} into parts of the size {1} and saving them in the directory {2} is started.",
|
||||
"MessageSplitFilePart": "Processing part {0} of {1}...",
|
||||
"MessageSplitComplete": "File splitting {0} is complete!",
|
||||
"MessageHashCheckStart": "Starting check the hash of the splitting",
|
||||
"MessageHashCheckFail": "Unfortunately, the file \"{0}\" did not pass the hash check!",
|
||||
"MessageHashCheckComplete": "Hash verification is complete!",
|
||||
"MessageJoinAsk": "Do you want to start joining file {0}? [Y|y - yes, any other letter - no]",
|
||||
"MessageStartJoin": "Joining of files specified by the information file {0} into the file {1} has started.",
|
||||
"MessageJoinUnsupportedFile": "Unfortunately, the version of the information file {0} is not supported!",
|
||||
"MessageJoinUnknownFile": "Can't read the information file! Maybe it's encrypted?",
|
||||
"MessageJoinHashError": "Unfortunately, the split files did not pass verification. Perhaps they are damaged?",
|
||||
"MessageJoinCheckError": "Unfortunately, the joined file did not pass the validation of join. Perhaps there were any mistakes?",
|
||||
"MessageJoinFilePart": "Processing part {0} of {1}...",
|
||||
"MessageJoinComplete": "File joining {0} is complete!",
|
||||
"MessagePleaseWaitToReady": "Please wait. Preparations for the operation are underway. This may take a long time, during which the program may seem to hang.",
|
||||
|
||||
//Interactive mode messages
|
||||
"InteractiveStartAsk": "Choose one of the actions:\n* S|s - splitting\n* J|j - joining\n* O|o - program's options\n* E|e - exit\nYour choice:",
|
||||
"InteractiveWrongInput": "Unknown action selected!",
|
||||
"InteractiveOperationFinish": "The operation is completed! Exit code is: {0}",
|
||||
"InteractiveFileNameNotExist": "The file does not exist! Repeat file entry? [Y|y - to repeat, any other letter - to abort operation]",
|
||||
"InteractiveFileNameExist": "The file exists! You need to select a non-existent file! Repeat file entry? [Y|y - to repeat, any other letter - to abort operation]",
|
||||
|
||||
"InteractiveSplitFileNameAsk": "Enter the name of the file to split (or drag it here):",
|
||||
"InteractiveSplitFileNameResult": "File selected for splitting: {0}",
|
||||
"InteractiveSplitTargetDirAsk": "Select the folder where you want to save the parts of the file (or leave it empty to use the folder of the split file):",
|
||||
"InteractiveSplitTargetDirResult": "The split files will be saved in the folder: {0}",
|
||||
"InteractiveSplitPartSizeAsk": "Enter the size of the part (in bytes):",
|
||||
"InteractiveSplitPartSizeAsk2": "You have selected the part size {0}. Is everything right? [Y|y - yes, continue; any other letter - no, repeat input]",
|
||||
"InteractiveSplitPartSizeResult": "Selected part size: {0}",
|
||||
"InteractiveSplitOptionsAsk": "Enter additional splitting parameters (space separator):",
|
||||
"InteractiveSplitOptionsResult": "Additional splitting parameters are selected: [{0}]",
|
||||
|
||||
"InteractiveJoinFileNameAsk": "Enter the name of the split information file (or drag it here):",
|
||||
"InteractiveJoinFileNameResult": "The file selected for the join is: {0}",
|
||||
"InteractiveJoinTargetFileNameAsk": "Select the name and path to the file to be joined (for example, c:\\myFiles\\myFile.txt ):",
|
||||
"InteractiveJoinTargetFileNameResult": "The file will be joined: {0}",
|
||||
"InteractiveJoinOptionsAsk": "Enter additional join parameters (space delimiter):",
|
||||
"InteractiveJoinOptionsResult": "Additional join parameters selected: [{0}]",
|
||||
|
||||
"InteractiveOptionsAsk": "Enter the program parameters (space delimiter):",
|
||||
"InteractiveOptionsConfirm": "Program parameters selected:\n{0}\nDo you confirm them? [Y|y - yes, any other letter - to abort]",
|
||||
"InteractiveOptionsResult": "The parameters are saved! To apply them, you need to restart the program...",
|
||||
|
||||
//Константы размеров
|
||||
"FileSizeStringsByte": "byte",
|
||||
"FileSizeStringsKByte": "KByte",
|
||||
"FileSizeStringsMByte": "MByte",
|
||||
"FileSizeStringsGByte": "GByte",
|
||||
"FileSizeStringsTByte": "TByte",
|
||||
|
||||
//Переводы кодов возврата
|
||||
"ExitCodeNamesAllDone": "Completed successfully",
|
||||
"ExitCodeNamesInfoVersionUnsupported": "The version of the split information file is not supported",
|
||||
"ExitCodeNamesInvalidParameters": "Invalid parameters",
|
||||
"ExitCodeNamesSplitFileHashError": "Error checking the hash sum of split files",
|
||||
"ExitCodeNamesTargetFileCheckError": "Error checking the integrity of joined file",
|
||||
"ExitCodeNamesUnknownInfoFile": "Unknown partitioning information file",
|
||||
"ExitCodeNamesUserAborted": "Aborted by the user"
|
||||
}
|
69
FileSplitter/languages/russian.json
Normal file
69
FileSplitter/languages/russian.json
Normal file
@ -0,0 +1,69 @@
|
||||
{
|
||||
//Параметры приложения
|
||||
"AppTitle": "ANB Software Делитель файлов",
|
||||
"AppVersion": "Версия: {0}",
|
||||
"AppCopyrights": "Авторские права (C) {0}, Александр Бабаев.",
|
||||
|
||||
//Сообщения
|
||||
"MessageNoParametersForSplit": "Не заданы параметры разбиения. Информацию о работе с программой смотрите в файле «<папка с программой>\\Help\\Russian.html#ConsoleParams»\"",
|
||||
"MessageSplitAsk": "Информация о разбиваемом файле:\n***{0}\n***Размер: {1}\n***Хэш файла: {2}\n***Предполагается разбиение на {3} части(-ей)\nВы хотите начать разбиение? [Y|y - да, Любая другая буква/слово/выражение - нет]",
|
||||
"MessageStartSplit": "Запущено разбиение файла {0} на части размером {1} и сохранением их в директории {2}.",
|
||||
"MessageSplitFilePart": "Идёт обработка части {0} из {1}...",
|
||||
"MessageSplitComplete": "Разбиение файла {0} завершено!",
|
||||
"MessageHashCheckStart": "Начинаю проверку хэша разбиения",
|
||||
"MessageHashCheckFail": "К сожалению, файл \"{0}\" не прошёл проверку хэша!",
|
||||
"MessageHashCheckComplete": "Проверка хэша завершена!",
|
||||
"MessageJoinAsk": "Вы хотите начать сборку файла {0}? [Y|y - да, любая другая буква/слово/выражение - нет]",
|
||||
"MessageStartJoin": "Запущено объединение файлов, заданных файлом информации {0}, в файл {1}.",
|
||||
"MessageJoinUnsupportedFile": "К сожалению, версия файла информации {0} не поддерживается!",
|
||||
"MessageJoinUnknownFile": "Не могу прочитать файл информации! Возможно он зашифрован?",
|
||||
"MessageJoinHashError": "К сожалению, разделённые файлы не прошли проверку. Возможно они повреждены?",
|
||||
"MessageJoinCheckError": "К сожалению, объединённый файл не прошли проверку корректности объединения. Возможно были какие-либо ошибки?",
|
||||
"MessageJoinFilePart": "Идёт обработка части {0} из {1}...",
|
||||
"MessageJoinComplete": "Объединение файла {0} завершено!",
|
||||
"MessagePleaseWaitToReady": "Пожалуйста, подождите. Идёт подготовка к операции. Это может занять длительное время, в течении которого программа может казаться зависшей.",
|
||||
|
||||
//Сообщения интерактивного режима
|
||||
"InteractiveStartAsk": "Выберете одно из действий:\n* S|s - разбиение\n* J|j - объединение\n* O|o - параметры программы\n* E|e - выход\nВаш выбор:",
|
||||
"InteractiveWrongInput": "Выбрано неизвестное действие!",
|
||||
"InteractiveOperationFinish": "Операция завершена с кодом: {0}",
|
||||
"InteractiveFileNameNotExist": "Файл не существует! Повторить ввод файла? [Y|y - для повтора, любая другая буква - прерывание операции]",
|
||||
"InteractiveFileNameExist": "Файл существует! Нужно выбрать несуществующий файл! Повторить ввод файла? [Y|y - для повтора, любая другая буква - прерывание операции]",
|
||||
|
||||
"InteractiveSplitFileNameAsk": "Введите имя разбиваемого файла (или перетащите его сюда):",
|
||||
"InteractiveSplitFileNameResult": "Для разбиения выбран файл: {0}",
|
||||
"InteractiveSplitTargetDirAsk": "Выберете папку, куда следует сохранить части файла (или оставьте пустым, чтобы использовать папку разбиваемого файла):",
|
||||
"InteractiveSplitTargetDirResult": "Файлы разбиения будут сохранены в папке: {0}",
|
||||
"InteractiveSplitPartSizeAsk": "Введите размер части (в байтах):",
|
||||
"InteractiveSplitPartSizeAsk2": "Вы выбрали размер части {0}. Всё правильно? [Y|y - да, продолжить, любая другая буква - нет, повторить ввод]",
|
||||
"InteractiveSplitPartSizeResult": "Выбран размер части: {0}",
|
||||
"InteractiveSplitOptionsAsk": "Введите дополнительные параметры разбиения (разделитель - пробел):",
|
||||
"InteractiveSplitOptionsResult": "Выбраны дополнительные параметры разбиения: [{0}]",
|
||||
|
||||
"InteractiveJoinFileNameAsk": "Введите имя файла информации о разбиении (или перетащите его сюда):",
|
||||
"InteractiveJoinFileNameResult": "Для сборки выбран файл: {0}",
|
||||
"InteractiveJoinTargetFileNameAsk": "Выберите имя и путь к собираемому файлу (например, c:\\myFiles\\myFile.txt):",
|
||||
"InteractiveJoinTargetFileNameResult": "Будет собран файл: {0}",
|
||||
"InteractiveJoinOptionsAsk": "Введите дополнительные параметры соединения (разделитель - пробел):",
|
||||
"InteractiveJoinOptionsResult": "Выбраны дополнительные параметры соединения: [{0}]",
|
||||
|
||||
"InteractiveOptionsAsk": "Введите параметры программы (разделитель - пробел):",
|
||||
"InteractiveOptionsConfirm": "Выбраны параметры программы:\n{0}\nВы их подтверждаете? [Y|y - да, любая другая буква - выход]",
|
||||
"InteractiveOptionsResult": "Параметры сохранены! Для их применения требуется перезапуск программы...",
|
||||
|
||||
//Константы размеров
|
||||
"FileSizeStringsByte": "байт",
|
||||
"FileSizeStringsKByte": "Кб",
|
||||
"FileSizeStringsMByte": "Мб",
|
||||
"FileSizeStringsGByte": "Гб",
|
||||
"FileSizeStringsTByte": "Тб",
|
||||
|
||||
//Переводы кодов возврата
|
||||
"ExitCodeNamesAllDone": "Успешно завершено",
|
||||
"ExitCodeNamesInfoVersionUnsupported": "Версия файла информации о разбиении не поддерживается",
|
||||
"ExitCodeNamesInvalidParameters": "Неверные параметры",
|
||||
"ExitCodeNamesSplitFileHashError": "Ошибка проверки хэш-суммы разделённых файлов",
|
||||
"ExitCodeNamesTargetFileCheckError": "Ошибка проверки целостности собираемого файла",
|
||||
"ExitCodeNamesUnknownInfoFile": "Неизвестный файл информации о разбиении",
|
||||
"ExitCodeNamesUserAborted": "Прервано пользователем"
|
||||
}
|
@ -1,7 +1,13 @@
|
||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Babaev/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Yandex/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_0411_0430_0431_0430_0435_0432/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_0418_0434_0451_0442/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_041F_0430_0440_0441_0435_0440/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_0434_0438_0437_0430_0441_0441_0435_043C_0431_043B_0438_0440_043E_0432_0430_0442_044C/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_043E_0431_044A_0435_0434_0438_043D_0451_043D_043D_043E_0433_043E/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_043E_0431_044A_0435_0434_0438_043D_0451_043D_043D_044B_0439/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_043F_0440_043E_0448_0451_043B/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_0440_0430_0437_0434_0435_043B_0451_043D_043D_044B_0435/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_0440_0430_0437_0434_0435_043B_0451_043D_043D_044B_043C_0438/@EntryIndexedValue">True</s:Boolean>
|
||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=_0440_0430_0437_0434_0435_043B_0451_043D_043D_044B_0445/@EntryIndexedValue">True</s:Boolean>
|
||||
|
64
FileSplitterShared/Classes/FileSplitterConsoleOptions.cs
Normal file
64
FileSplitterShared/Classes/FileSplitterConsoleOptions.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using Newtonsoft.Json;
|
||||
using System.Text;
|
||||
|
||||
namespace FileSplitter.Shared.Classes;
|
||||
|
||||
/// <summary>
|
||||
/// Параметры консоли программы
|
||||
/// </summary>
|
||||
public sealed class FileSplitterConsoleOptions
|
||||
{
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public FileSplitterConsoleOptions () => Language = "russian";
|
||||
|
||||
/// <summary>
|
||||
/// Язык приложения
|
||||
/// </summary>
|
||||
public string Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Сохранение параметров в файл
|
||||
/// </summary>
|
||||
public void Save ()
|
||||
{
|
||||
//Открываю файл
|
||||
StreamWriter writer = new("settings.json", Encoding.UTF8,
|
||||
new() { Access = FileAccess.Write, Mode = FileMode.Create });
|
||||
|
||||
//Записываю файл
|
||||
writer.WriteLine(JsonConvert.SerializeObject(this));
|
||||
|
||||
//Закрываю файл
|
||||
writer.Close();
|
||||
//Освобождаю память
|
||||
writer.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Загрузка параметров из файла
|
||||
/// </summary>
|
||||
public void Load ()
|
||||
{
|
||||
//Если файла опций не существует
|
||||
if (!File.Exists("settings.json"))
|
||||
//- то создаём
|
||||
Save();
|
||||
|
||||
//Открываю файл
|
||||
StreamReader reader = new("settings.json", Encoding.UTF8);
|
||||
|
||||
//Читаю файл
|
||||
FileSplitterConsoleOptions options =
|
||||
JsonConvert.DeserializeObject<FileSplitterConsoleOptions>(reader.ReadLine() ?? "[]") ?? new();
|
||||
|
||||
//- закрываю файл
|
||||
reader.Close();
|
||||
//- освобождаю память
|
||||
reader.Dispose();
|
||||
|
||||
//Устанавливаю параметры
|
||||
Language = options.Language;
|
||||
}
|
||||
}
|
134
FileSplitterShared/Classes/FileSplitterLanguage.cs
Normal file
134
FileSplitterShared/Classes/FileSplitterLanguage.cs
Normal file
@ -0,0 +1,134 @@
|
||||
namespace FileSplitter.Shared.Classes;
|
||||
|
||||
/// <summary>
|
||||
/// Класс json-представления языкового файла программы
|
||||
/// </summary>
|
||||
public class FileSplitterLanguage
|
||||
{
|
||||
//Параметры приложения
|
||||
public FileSplitterLanguage()
|
||||
{
|
||||
AppTitle = string.Empty;
|
||||
AppVersion = string.Empty;
|
||||
AppCopyrights = string.Empty;
|
||||
MessageNoParametersForSplit = string.Empty;
|
||||
MessageSplitAsk = string.Empty;
|
||||
MessageStartSplit = string.Empty;
|
||||
MessageSplitFilePart = string.Empty;
|
||||
MessageSplitComplete = string.Empty;
|
||||
MessageHashCheckStart = string.Empty;
|
||||
MessageHashCheckFail = string.Empty;
|
||||
MessageHashCheckComplete = string.Empty;
|
||||
MessageJoinAsk = string.Empty;
|
||||
MessageStartJoin = string.Empty;
|
||||
MessageJoinUnsupportedFile = string.Empty;
|
||||
MessageJoinUnknownFile = string.Empty;
|
||||
MessageJoinHashError = string.Empty;
|
||||
MessageJoinCheckError = string.Empty;
|
||||
MessageJoinFilePart = string.Empty;
|
||||
MessageJoinComplete = string.Empty;
|
||||
MessagePleaseWaitToReady = string.Empty;
|
||||
InteractiveStartAsk = string.Empty;
|
||||
InteractiveWrongInput = string.Empty;
|
||||
InteractiveOperationFinish = string.Empty;
|
||||
InteractiveFileNameNotExist = string.Empty;
|
||||
InteractiveFileNameExist = string.Empty;
|
||||
InteractiveSplitFileNameAsk = string.Empty;
|
||||
InteractiveSplitFileNameResult = string.Empty;
|
||||
InteractiveSplitTargetDirAsk = string.Empty;
|
||||
InteractiveSplitTargetDirResult = string.Empty;
|
||||
InteractiveSplitPartSizeAsk = string.Empty;
|
||||
InteractiveSplitPartSizeAsk2 = string.Empty;
|
||||
InteractiveSplitPartSizeResult = string.Empty;
|
||||
InteractiveSplitOptionsAsk = string.Empty;
|
||||
InteractiveSplitOptionsResult = string.Empty;
|
||||
InteractiveJoinFileNameAsk = string.Empty;
|
||||
InteractiveJoinFileNameResult = string.Empty;
|
||||
InteractiveJoinTargetFileNameAsk = string.Empty;
|
||||
InteractiveJoinTargetFileNameResult = string.Empty;
|
||||
InteractiveJoinOptionsAsk = string.Empty;
|
||||
InteractiveJoinOptionsResult = string.Empty;
|
||||
InteractiveOptionsAsk = string.Empty;
|
||||
InteractiveOptionsConfirm = string.Empty;
|
||||
InteractiveOptionsResult = string.Empty;
|
||||
FileSizeStringsByte = string.Empty;
|
||||
FileSizeStringsKByte = string.Empty;
|
||||
FileSizeStringsMByte = string.Empty;
|
||||
FileSizeStringsGByte = string.Empty;
|
||||
FileSizeStringsTByte = string.Empty;
|
||||
ExitCodeNamesAllDone = string.Empty;
|
||||
ExitCodeNamesInfoVersionUnsupported = string.Empty;
|
||||
ExitCodeNamesInvalidParameters = string.Empty;
|
||||
ExitCodeNamesSplitFileHashError = string.Empty;
|
||||
ExitCodeNamesTargetFileCheckError = string.Empty;
|
||||
ExitCodeNamesUnknownInfoFile = string.Empty;
|
||||
ExitCodeNamesUserAborted = string.Empty;
|
||||
}
|
||||
|
||||
public string AppTitle { get; set; }
|
||||
public string AppVersion { get; set; }
|
||||
public string AppCopyrights { get; set; }
|
||||
|
||||
//Сообщения
|
||||
public string MessageNoParametersForSplit { get; set; }
|
||||
public string MessageSplitAsk { get; set; }
|
||||
public string MessageStartSplit { get; set; }
|
||||
public string MessageSplitFilePart { get; set; }
|
||||
public string MessageSplitComplete { get; set; }
|
||||
public string MessageHashCheckStart { get; set; }
|
||||
public string MessageHashCheckFail { get; set; }
|
||||
public string MessageHashCheckComplete { get; set; }
|
||||
public string MessageJoinAsk { get; set; }
|
||||
public string MessageStartJoin { get; set; }
|
||||
public string MessageJoinUnsupportedFile { get; set; }
|
||||
public string MessageJoinUnknownFile { get; set; }
|
||||
public string MessageJoinHashError { get; set; }
|
||||
public string MessageJoinCheckError { get; set; }
|
||||
public string MessageJoinFilePart { get; set; }
|
||||
public string MessageJoinComplete { get; set; }
|
||||
public string MessagePleaseWaitToReady { get; set; }
|
||||
|
||||
//Сообщения интерактивного режима
|
||||
public string InteractiveStartAsk { get; set; }
|
||||
public string InteractiveWrongInput { get; set; }
|
||||
public string InteractiveOperationFinish { get; set; }
|
||||
public string InteractiveFileNameNotExist { get; set; }
|
||||
public string InteractiveFileNameExist { get; set; }
|
||||
|
||||
public string InteractiveSplitFileNameAsk { get; set; }
|
||||
public string InteractiveSplitFileNameResult { get; set; }
|
||||
public string InteractiveSplitTargetDirAsk { get; set; }
|
||||
public string InteractiveSplitTargetDirResult { get; set; }
|
||||
public string InteractiveSplitPartSizeAsk { get; set; }
|
||||
public string InteractiveSplitPartSizeAsk2 { get; set; }
|
||||
public string InteractiveSplitPartSizeResult { get; set; }
|
||||
public string InteractiveSplitOptionsAsk { get; set; }
|
||||
public string InteractiveSplitOptionsResult { get; set; }
|
||||
|
||||
public string InteractiveJoinFileNameAsk { get; set; }
|
||||
public string InteractiveJoinFileNameResult { get; set; }
|
||||
public string InteractiveJoinTargetFileNameAsk { get; set; }
|
||||
public string InteractiveJoinTargetFileNameResult { get; set; }
|
||||
public string InteractiveJoinOptionsAsk { get; set; }
|
||||
public string InteractiveJoinOptionsResult { get; set; }
|
||||
|
||||
public string InteractiveOptionsAsk { get; set; }
|
||||
public string InteractiveOptionsConfirm { get; set; }
|
||||
public string InteractiveOptionsResult { get; set; }
|
||||
|
||||
//Константы размеров
|
||||
public string FileSizeStringsByte { get; set; }
|
||||
public string FileSizeStringsKByte { get; set; }
|
||||
public string FileSizeStringsMByte { get; set; }
|
||||
public string FileSizeStringsGByte { get; set; }
|
||||
public string FileSizeStringsTByte { get; set; }
|
||||
|
||||
//Переводы кодов возврата
|
||||
public string ExitCodeNamesAllDone { get; set; }
|
||||
public string ExitCodeNamesInfoVersionUnsupported { get; set; }
|
||||
public string ExitCodeNamesInvalidParameters { get; set; }
|
||||
public string ExitCodeNamesSplitFileHashError { get; set; }
|
||||
public string ExitCodeNamesTargetFileCheckError { get; set; }
|
||||
public string ExitCodeNamesUnknownInfoFile { get; set; }
|
||||
public string ExitCodeNamesUserAborted { get; set; }
|
||||
}
|
@ -1,62 +1,117 @@
|
||||
using FileSplitter.Shared.Enums;
|
||||
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace FileSplitter.Shared.Classes;
|
||||
|
||||
public static class Localization
|
||||
{
|
||||
//Содержимое языкового файла
|
||||
private static readonly FileSplitterLanguage Language;
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
static Localization()
|
||||
{
|
||||
//Создаю опции приложения
|
||||
FileSplitterConsoleOptions options = new();
|
||||
//- и загружаю их
|
||||
options.Load();
|
||||
|
||||
//Язык приложения
|
||||
string language = options.Language;
|
||||
|
||||
//Если файла языка не существует
|
||||
if (!File.Exists($"languages\\{language}.json"))
|
||||
//- то используем русский
|
||||
language = "russian";
|
||||
|
||||
//Читаю файл
|
||||
string languageContent = File.ReadAllText($"languages\\{language}.json");
|
||||
|
||||
//Загружаю парсер
|
||||
Language = JsonConvert.DeserializeObject<FileSplitterLanguage>(languageContent) ?? new ();
|
||||
|
||||
//Задаю массивы
|
||||
//- размеров файлов
|
||||
FileSizeStrings = new[]
|
||||
{
|
||||
Language.FileSizeStringsByte,
|
||||
Language.FileSizeStringsKByte,
|
||||
Language.FileSizeStringsMByte,
|
||||
Language.FileSizeStringsGByte,
|
||||
Language.FileSizeStringsTByte
|
||||
};
|
||||
|
||||
//- кодов ответов
|
||||
ExitCodeNames = new()
|
||||
{
|
||||
(FsExitCode.ecAllDone, Language.ExitCodeNamesAllDone),
|
||||
(FsExitCode.ecInvalidParameters, Language.ExitCodeNamesInvalidParameters),
|
||||
(FsExitCode.ecUserAborted, Language.ExitCodeNamesUserAborted),
|
||||
(FsExitCode.ecUnknownInfoFile, Language.ExitCodeNamesUnknownInfoFile),
|
||||
(FsExitCode.ecInfoVersionUnsupported, Language.ExitCodeNamesInfoVersionUnsupported),
|
||||
(FsExitCode.ecSplitFileHashError, Language.ExitCodeNamesSplitFileHashError),
|
||||
(FsExitCode.ecTargetFileCheckError, Language.ExitCodeNamesTargetFileCheckError)
|
||||
};
|
||||
}
|
||||
|
||||
//Параметры приложения
|
||||
public const string AppTitle = "ANB Software Делитель файлов";
|
||||
public const string AppVersion = "Версия: {0}";
|
||||
public const string AppCopyrights = "Авторские права (C) {0}, Александр Бабаев.";
|
||||
public static string AppTitle => Language.AppTitle;
|
||||
public static string AppVersion => Language.AppVersion;
|
||||
public static string AppCopyrights => Language.AppCopyrights;
|
||||
|
||||
//Сообщения
|
||||
public const string MessageNoParametersForSplit =
|
||||
"Не заданы параметры разбиения. Информацию о работе с программой смотрите в файле \"Help\\Russian\\Console.html\"";
|
||||
public const string MessageSplitAsk =
|
||||
"Информация о разбиваемом файле:\n***{0}\n***Размер: {1}\n***Хэш файла: {2}\n***Предполагается разбиение на {3} части(-ей)\nВы хотите начать разбиение? [Y|y - да, Любая другая буква/слово/выражение - нет]";
|
||||
public const string MessageStartSplit = "Запущено разбиение файла {0} на части размером {1} и сохранением их в директории {2}.";
|
||||
public const string MessageSplitFilePart = "Идёт обработка части {0} из {1}...";
|
||||
public const string MessageSplitComplete = "Разбиение файла {0} завершено!";
|
||||
public const string MessageHashCheckStart = "Начинаю проверку хэша разбиения";
|
||||
public const string MessageHashCheckFail = "К сожалению, файл \"{0}\" не прошёл проверку хэша!";
|
||||
public const string MessageHashCheckComplete = "Проверка хэша завершена!";
|
||||
public const string MessageJoinAsk = "Вы хотите начать сборку файла {0}? [Y|y - да, любая другая буква/слово/выражение - нет]";
|
||||
public const string MessageStartJoin = "Запущено объединение файлов, заданных файлом информации {0}, в файл {1}.";
|
||||
public const string MessageJoinUnsupportedFile = "К сожалению, версия файла информации {0} не поддерживается!";
|
||||
public const string MessageJoinUnknownFile = "Не могу прочитать файл информации! Возможно он зашифрован?";
|
||||
public const string MessageJoinHashError = "К сожалению, разделённые файлы не прошли проверку. Возможно они повреждены?";
|
||||
public const string MessageJoinCheckError =
|
||||
"К сожалению, объединённый файл не прошли проверку корректности объединения. Возможно были какие-либо ошибки?";
|
||||
public const string MessageJoinFilePart = "Идёт обработка части {0} из {1}...";
|
||||
public const string MessageJoinComplete = "Объединение файла {0} завершено!";
|
||||
public static string MessageNoParametersForSplit => Language.MessageNoParametersForSplit;
|
||||
public static string MessageSplitAsk => Language.MessageSplitAsk;
|
||||
public static string MessageStartSplit => Language.MessageStartSplit;
|
||||
public static string MessageSplitFilePart => Language.MessageSplitFilePart;
|
||||
public static string MessageSplitComplete => Language.MessageSplitComplete;
|
||||
public static string MessageHashCheckStart => Language.MessageHashCheckStart;
|
||||
public static string MessageHashCheckFail => Language.MessageHashCheckFail;
|
||||
public static string MessageHashCheckComplete => Language.MessageHashCheckComplete;
|
||||
public static string MessageJoinAsk => Language.MessageJoinAsk;
|
||||
public static string MessageStartJoin => Language.MessageStartJoin;
|
||||
public static string MessageJoinUnsupportedFile => Language.MessageJoinUnsupportedFile;
|
||||
public static string MessageJoinUnknownFile => Language.MessageJoinUnknownFile;
|
||||
public static string MessageJoinHashError => Language.MessageJoinHashError;
|
||||
public static string MessageJoinCheckError => Language.MessageJoinCheckError;
|
||||
public static string MessageJoinFilePart => Language.MessageJoinFilePart;
|
||||
public static string MessageJoinComplete => Language.MessageJoinComplete;
|
||||
public static string MessagePleaseWaitToReady => Language.MessagePleaseWaitToReady;
|
||||
|
||||
//Сообщения интерактивного режима
|
||||
public const string InteractiveStartAsk = "Выберете одно из действий:\n* S|s - разбиение\n* J|j - объединение\n* E|e - выход\nВаш выбор:";
|
||||
public const string InteractiveWrongInput = "Выбрано неизвестное действие!";
|
||||
public const string InteractiveOperationFinish = "Операция завершена с кодом: {0}";
|
||||
public const string InteractiveSplitFileNameAsk = "Введите имя разбиваемого файла (или перетащите его сюда):";
|
||||
public const string InteractiveFileNameNotExist = "Файл не существует! Повторить ввод файла? [Y|y - для повтора, любая другая буква - прерывание операции]";
|
||||
public const string InteractiveSplitFileNameResult = "Для разбиения выбран файл: {0}";
|
||||
public const string InteractiveSplitTargetDirAsk = "Выберете папку, куда следует сохранить части файла (или оставьте пустым, чтобы использовать папку разбиваемого файла):";
|
||||
public const string InteractiveSplitTargetDirResult = "Файлы разбиения будут сохранены в папке: {0}";
|
||||
public const string InteractiveSplitPartSizeAsk = "Введите размер части (в байтах):";
|
||||
public const string InteractiveSplitPartSizeAsk2 = "Вы выбрали размер части {0}. Всё правильно? [Y|y - да, продолжить, любая другая буква - нет, повторить ввод]";
|
||||
public const string InteractiveSplitPartSizeResult = "Выбран размер части: {0}";
|
||||
public const string InteractiveSplitOptionsAsk = "Введите дополнительные параметры разбиения (разделитель - пробел):";
|
||||
public const string InteractiveSplitOptionsResult = "Выбраны дополнительные параметры: [{0}]";
|
||||
public static string InteractiveStartAsk => Language.InteractiveStartAsk;
|
||||
public static string InteractiveWrongInput => Language.InteractiveWrongInput;
|
||||
public static string InteractiveOperationFinish => Language.InteractiveOperationFinish;
|
||||
public static string InteractiveFileNameNotExist => Language.InteractiveFileNameNotExist;
|
||||
public static string InteractiveFileNameExist => Language.InteractiveFileNameExist;
|
||||
|
||||
public static string InteractiveSplitFileNameAsk => Language.InteractiveSplitFileNameAsk;
|
||||
public static string InteractiveSplitFileNameResult => Language.InteractiveSplitFileNameResult;
|
||||
public static string InteractiveSplitTargetDirAsk => Language.InteractiveSplitTargetDirAsk;
|
||||
public static string InteractiveSplitTargetDirResult => Language.InteractiveSplitTargetDirResult;
|
||||
public static string InteractiveSplitPartSizeAsk => Language.InteractiveSplitPartSizeAsk;
|
||||
public static string InteractiveSplitPartSizeAsk2 => Language.InteractiveSplitPartSizeAsk2;
|
||||
public static string InteractiveSplitPartSizeResult => Language.InteractiveSplitPartSizeResult;
|
||||
public static string InteractiveSplitOptionsAsk => Language.InteractiveSplitOptionsAsk;
|
||||
public static string InteractiveSplitOptionsResult => Language.InteractiveSplitOptionsResult;
|
||||
|
||||
public static string InteractiveJoinFileNameAsk => Language.InteractiveJoinFileNameAsk;
|
||||
public static string InteractiveJoinFileNameResult => Language.InteractiveJoinFileNameResult;
|
||||
public static string InteractiveJoinTargetFileNameAsk => Language.InteractiveJoinTargetFileNameAsk;
|
||||
public static string InteractiveJoinTargetFileNameResult => Language.InteractiveJoinTargetFileNameResult;
|
||||
public static string InteractiveJoinOptionsAsk => Language.InteractiveJoinOptionsAsk;
|
||||
public static string InteractiveJoinOptionsResult => Language.InteractiveJoinOptionsResult;
|
||||
|
||||
public static string InteractiveOptionsAsk => Language.InteractiveOptionsAsk;
|
||||
public static string InteractiveOptionsConfirm => Language.InteractiveOptionsConfirm;
|
||||
public static string InteractiveOptionsResult => Language.InteractiveOptionsResult;
|
||||
|
||||
//Константы размеров
|
||||
public static readonly string[] FileSizeStrings = { "байт", "Кб", "Мб", "Гб", "Тб" };
|
||||
public static string[] FileSizeStrings { get; }
|
||||
|
||||
//Переводы кодов возврата
|
||||
public static readonly List<(FsExitCode, string)> ExitCodeNames = new()
|
||||
{
|
||||
(FsExitCode.ecAllDone, "Успешно завершено"),
|
||||
(FsExitCode.ecInvalidParameters, "Неверные параметры"),
|
||||
(FsExitCode.ecUserAborted, "Прервано пользователем"),
|
||||
(FsExitCode.ecUnknownInfoFile, "Неизвестный файл информации о разбиении"),
|
||||
(FsExitCode.ecInfoVersionUnsupported, "Версия файла информации о разбиении не поддерживается"),
|
||||
(FsExitCode.ecSplitFileHashError, "Ошибка проверки хэш-суммы разделённых файлов"),
|
||||
(FsExitCode.ecTargetFileCheckError, "Ошибка проверки целостности собираемого файла")
|
||||
};
|
||||
public static List<(FsExitCode, string)> ExitCodeNames { get; }
|
||||
}
|
@ -6,6 +6,16 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<AssemblyName>FileSplitterShared</AssemblyName>
|
||||
<RootNamespace>FileSplitter.Shared</RootNamespace>
|
||||
<Title>FileSplitted Shared Library</Title>
|
||||
<Version>2023.04.16</Version>
|
||||
<Authors>Alexander Babaev</Authors>
|
||||
<Company />
|
||||
<Product>ANB Software FileSplitter</Product>
|
||||
<Description>Support library for ANB Software FileSplitter</Description>
|
||||
<Copyright>Alexander Babaev</Copyright>
|
||||
<PackageProjectUrl>https://git.babaev-an.ru/babaev-an/FileSplitter</PackageProjectUrl>
|
||||
<RepositoryUrl>https://git.babaev-an.ru/babaev-an/FileSplitter</RepositoryUrl>
|
||||
<NeutralLanguage>ru</NeutralLanguage>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
Binary file not shown.
369
output/x32/help/english.html
Normal file
369
output/x32/help/english.html
Normal file
@ -0,0 +1,369 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>«ANB Software File Splitter» help</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>
|
||||
ANB Software File Splitter
|
||||
</h1>
|
||||
<h2>
|
||||
Version 0.5 (2023.04.16)
|
||||
<br />
|
||||
Copyrights © 2023 by Alewxander Babaev.
|
||||
</h2>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="toc"></a>
|
||||
<h3>Content</h3>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<a href="#description">Description</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#license">License</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#split">How to use: Split file</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#join">How to use: Join Files</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#options">How to use: Application Parameters</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#ConsoleParams">How to use: Console Line Parameters</a>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="description"></a>
|
||||
<h3>Description</h3>
|
||||
<p>
|
||||
<strong>ANB Software File Splitter</strong> allows you to divide a file into the nth number of files of a given
|
||||
volume without archiving the data, and then assemble it into a single file, if you need it.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The program works in two modes: 1) using command line parameters; 2) interactive mode.
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
<a name="license"></a>
|
||||
<h3>END USER LICENSE AGREEMENT (EULA)</h3>
|
||||
|
||||
<p>(Version 1.0)</p>
|
||||
|
||||
<h4>DEFINITIONS</h4>
|
||||
|
||||
<p>
|
||||
ANB Software File Splitter (hereinafter referred to as "product") - a program and/or a component of the program
|
||||
and/or other (game, image, film, etc.), to which this agreement applies.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
End User (hereinafter referred to as "you" or "user") is a person and/or organization that uses the product,
|
||||
provided under this license.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Alexander Babaev (hereinafter referred to as "Manufacturer") - the person and/or organization that produced the
|
||||
product.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
LIMITATIONS
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Some States (districts, regions, states) do not allow the limitation or exclusion of liability for unforeseen
|
||||
damage. If your country (district, region, state) does not imply limitation or exclusion of liability for
|
||||
unforeseen damages, then this agreement cannot apply to you. In this case, refuse to use the product.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Some States (districts, regions, states) do not allow the exclusion of implied warranties. If your country
|
||||
(district, region, state) does not imply the exclusion of implied warranties that this agreement may not apply
|
||||
to you. In this case, refuse to use the product.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
SUBJECT OF THE AGREEMENT
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
This agreement is concluded between the Manufacturer of the product and the User of the product. This agreement
|
||||
defines the relationship between the Manufacturer and the User arising from the use of the product.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
LICENSE
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
The product is distributed on the principle of "AS-IS" ("AS IS"). The author does not bear ANY RESPONSIBILITY in
|
||||
case this program causes physical, material or any other harm to you and your computer. You install the product
|
||||
at your own risk. The manufacturer and/or Distributor does not bear any responsibility for errors, malfunctions
|
||||
(etc.) caused by the product to your computer.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You can use this program at your discretion, as well as copy and distribute with a link to the author and the
|
||||
website "https://babaev-an.ru/". You are prohibited from copying, distributing the product without a link to the
|
||||
author and the previously specified site. You are prohibited from copying and using the product if the copy of
|
||||
the product you are installing does not have a link to the author and the previously specified site. You are
|
||||
prohibited from changing the contents of the product, disassembling, disassembling and modifying the product,
|
||||
using its components in other programs without the written agreement of the Manufacturer, removing or correcting
|
||||
any proprietary and/or copyright marks in the product.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
IF YOU DOWNLOAD, COPY THE PRODUCT OR USE IT IN ANY OTHER WAY, YOU HEREBY CONFIRM YOUR AGREEMENT TO COMPLY WITH
|
||||
THE TERMS OF THIS END USER LICENSE AGREEMENT. IF YOU DO NOT AGREE, DO NOT INSTALL, COPY, OR USE THE PRODUCT.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
COPYRIGHT
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
The copyright for all copies of the product belongs to the Manufacturer and is protected by the legislation of
|
||||
the Russian Federation and a number of other countries.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
LIMITED WARRANTY AND DISCLAIMER
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
You are not given any guarantees. All your possible demands, claims and claims (including on quality) will be
|
||||
UNRECOGNIZED.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
LIMITATION OF LIABILITY
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
You are not given any obligations. All your possible requirements will be UNRECOGNIZED.
|
||||
</p>
|
||||
<hr />
|
||||
|
||||
<a name="split"></a>
|
||||
<h3>How to use: Split file</h3>
|
||||
<p>
|
||||
The "File Splitting" operation is used to split a certain file (hereinafter, the source file) into n parts,
|
||||
given size. It requires the following parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>-fn="file name"</code> - name of the source file.
|
||||
</li>
|
||||
<li>
|
||||
<code>-td="path"</code> - the folder where the parts of the file will be saved.
|
||||
</li>
|
||||
<li>
|
||||
<code>-ps=«number»</code> - the size of a part of the file in bytes.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
In interactive mode, the user will be interviewed for each parameter.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The "File Splitting" operation may contain the following additional splitting parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>/NoCheckHash</code> - don't check parts for matching checksums.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DeleteSource</code> - after splitting, the source file is deleted.
|
||||
</li>
|
||||
<li>
|
||||
<code>/EncryptInfoFile</code> - whether the information file needs to be encrypted.
|
||||
<strong>ATTENTION!</strong> Enabling this parameter obliges you to specify the parameter in the additional
|
||||
assembly parameters during assembly <code>/DecryptInfoFile</code>. Otherwise, you will get <strong> return
|
||||
code 3</strong> when trying assemble the file.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Parameters are entered separated by a space, both in command-line parameters mode and in interactive mode.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For example, you need to split the <code>C file:\MyFiles\myBigFile.mp4</code> to 10 MB files and save files
|
||||
partitions to the <code>C folder:\myFilesSplited\</code> by deleting the source code, encrypting the split
|
||||
information file and not giving the user no requests. Then you should run the program in the following way:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter split -fn="C:\myFiles\myBigFile.mp4" -td="C:\myFilesSplited" -ps=10485760 /DeleteSource /EncryptInfoFile --silent
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="join"></a>
|
||||
<h3>How to use: Join Files</h3>
|
||||
<p>
|
||||
The "Join files" operation connects the file that was previously split using the "Split File" operation. She
|
||||
demands the following parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>-ifn="Имя файла"</code> - the name of the file with information about the split.
|
||||
</li>
|
||||
<li>
|
||||
<code>-tfn="Путь"</code> - the file to build the split into.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
In interactive mode, the user will be interviewed for each parameter.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The "Join Files" operation may contain the following additional assembly parameters:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>/NoCheckHash</code> - don't check parts for matching checksums.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DeleteSource</code> - after joining, the split files are deleted.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DecryptInfoFile</code> - whether to decrypt the information file. <strong>ATTENTION!</strong>
|
||||
Enabling this parameter obliges you to specify the parameter in the additional splitting parameters when
|
||||
splitting <code>/EncryptInfoFile</code>. Otherwise, you will get <strong> return code 3</strong> when trying
|
||||
joining the file.
|
||||
</li>
|
||||
<li>
|
||||
<code>/IgnoreVersion</code> - disable checking the version of the information file (NOT RECOMMENDED).
|
||||
</li>
|
||||
<li>
|
||||
<code>/SkipCheck</code> - disable checking the collected file for compliance with the original.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Parameters are entered separated by a space, both in command-line parameters mode and in interactive mode.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
For example, you need to merge the file specified by the information
|
||||
<code>C:\myFilesSplitter\myBigFile.mp4.fsi</code>, to file <code>C:\MyFiles\myBigFile.mp4</code> by deleting the
|
||||
split files, decrypting the split information file and disabling checking the collected file for compliance with
|
||||
the original. Then you should run the program in the following way:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter join -ifn="C:\myFilesSplited\myBigFile.mp4.fsi" -tfn="C:\myFiles\myBigFile.mp4" /DeleteSource /DecryptInfoFile /SkipCheck
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="options"></a>
|
||||
<h3>How to use: Application Parameters</h3>
|
||||
<p>
|
||||
The operation "Application Parameters" allows you to configure application parameters and works <strong> only in
|
||||
interactive mode</strong>. It requires the following parameters:
|
||||
</p>
|
||||
|
||||
<table style="text-align: center; border: 2px solid black;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Parameter
|
||||
</th>
|
||||
<th>
|
||||
Possible values
|
||||
</th>
|
||||
<th>
|
||||
Description
|
||||
</th>
|
||||
<th>
|
||||
Example
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
language
|
||||
</td>
|
||||
<td>
|
||||
String (language file name)
|
||||
</td>
|
||||
<td>
|
||||
Sets the application language
|
||||
</td>
|
||||
<td>
|
||||
language=russian
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr />
|
||||
|
||||
<a name="ConsoleParams"></a>
|
||||
<h3>How to use: Console Line Parameters</h3>
|
||||
<p>
|
||||
To use the program in command line parameters mode, run the program by passing command line parameters in the
|
||||
format:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter [OPERATION] [OPERATION PARAMETERS] [ADDITIONAL PARAMETERS] [SILENT MODE]
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
[OPERATION] can take the following values:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>split</code> - perform <a href="#split">split operation</a>.
|
||||
</li>
|
||||
<li>
|
||||
<code>join</code> - perform <a href="#join">join operation</a>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
[OPERATION PARAMETERS] and [ADDITIONAL PARAMETERS] are described in the corresponding help sections.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
[SILENT MODE] works only in command line parameters mode and is enabled by specifying:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<code>--silent</code> - the presence of this parameter indicates that no requests should be issued to the
|
||||
user (the so-called "Silent mode").
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
To turn off the silent mode, simply do not specify this parameter.
|
||||
</p>
|
||||
</body>
|
||||
|
||||
</html>
|
372
output/x32/help/russian.html
Normal file
372
output/x32/help/russian.html
Normal file
@ -0,0 +1,372 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="ru" xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Справка по программе «ANB Software Делитель файлов»</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>
|
||||
ANB Software Делитель файлов
|
||||
</h1>
|
||||
<h2>
|
||||
Версия 0.5 (2023.04.16)
|
||||
<br />
|
||||
Авторские права © 2023, Александр Бабаев.
|
||||
</h2>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="toc"></a>
|
||||
<h3>Содержание</h3>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<a href="#description">Описание</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#license">Лицензия</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#split">Как использовать: Разделение файлов</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#join">Как использовать: Объединение файлов</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#options">Как использовать: Параметры приложения</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#ConsoleParams">Как использовать: Параметры консольной строки</a>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="description"></a>
|
||||
<h3>Описание</h3>
|
||||
<p>
|
||||
<strong>ANB Software Делитель Файлов</strong> позволяет разделить файл на n-ое количество файлов заданного
|
||||
объема без архивации данных, а также потом собрать в единый файл, если вам понадобится.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Программа работает в двух режимах: 1) с помощью параметров командной строки; 2) интерактивный режим.
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
<a name="license"></a>
|
||||
<h3>ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ С КОНЕЧНЫМ ПОЛЬЗОВАТЕЛЕМ (EULA)</h3>
|
||||
|
||||
<p>(Версия 1.0)</p>
|
||||
|
||||
<h4>ОПРЕДЕЛЕНИЯ</h4>
|
||||
|
||||
<p>
|
||||
ANB Software File Splitter (далее "продукт") - программа и/или компонент программы и/или другое (игра,
|
||||
изображение, фильм и т.п.), на которое распространяется данное соглашение.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Конечный пользователь (далее "вы" или "пользователь") - лицо и/или организация, которое(-ая) использует продукт,
|
||||
предоставляемый под этой лицензией.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Александр Бабаев (далее "Производитель") - лицо и/или организация, которое(-ая) произвело продукт.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ОГРАНИЧЕНИЯ
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
В некоторых государствах (районах, областях, штатах) не позволяется ограничение или исключение ответственности
|
||||
за непредвиденный ущерб. Если ваша страна (район, область, штат) не подразумевает ограничение или исключение
|
||||
ответственности за непредвиденный ущерб, то данное соглашение не может применяться к вам. В этом случае
|
||||
откажитесь от использования продукта.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
В некоторых государствах (районах, областях, штатах) не позволяется исключение подразумеваемых гарантий. Если
|
||||
ваша страна (район, область, штат) не подразумевает исключение подразумеваемых гарантий, то данное соглашение не
|
||||
может применяться к вам. В этом случае откажитесь от использования продукта.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ПРЕДМЕТ СОГЛАШЕНИЯ
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Данное соглашение заключается между Производителем продукта и Пользователем продукта. Данное соглашение
|
||||
определяет отношения между Производителем и Пользователем, возникающие при использовании продукта.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ЛИЦЕНЗИЯ
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Продукт распространяется по принципу "AS-IS" ("КАК ЕСТЬ"). Автор не несет НИКАКОЙ ОТВЕТСТВЕННОСТИ в случае
|
||||
нанесения данной программой физического, материального или любого другого вреда вам и вашему компьютеру. Вы на
|
||||
свой страх и риск устанавливаете продукт. Производитель и/или Распространитель не несет(-ут) никакой
|
||||
ответственности за ошибки, неисправности (и т.п.), нанесенные продуктом вашему компьютеру.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Вы можете использовать данную программу на свое усмотрение, а также копировать и распространять со ссылкой на
|
||||
автора и сайт "https://babaev-an.ru/". Вам запрещается копировать, распространять продукт без ссылки на автора и
|
||||
указанный ранее сайт. Вам запрещается копирование и использование продукта, если устанавливаемая вами копия
|
||||
продукта не имеет ссылки на автора и указанный ранее сайт. Вам запрещается изменять содержимое продукта,
|
||||
разбирать, дизассемблировать и изменять продукт, использовать её компоненты в других программах без письменного
|
||||
соглашения Производителя, удалять или исправлять в продукте любые знаки о праве собственности и/или авторском
|
||||
праве на продукт.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
ЕСЛИ ВЫ ЗАГРУЖАЕТЕ, КОПИРУЕТЕ ПРОДУКТ ИЛИ ИСПОЛЬЗУЕТЕ ЕГО КАКИМ-ЛИБО ДРУГИМ СПОСОБОМ, ЭТИМ ВЫ ПОДТВЕРЖДАЕТЕ СВОЕ
|
||||
СОГЛАСИЕ СОБЛЮДАТЬ УСЛОВИЯ ДАННОГО ЛИЦЕНЗИОННОГО СОГЛАШЕНИЯ С КОНЕЧНЫМ ПОЛЬЗОВАТЕЛЕМ. ЕСЛИ ВЫ НЕ СОГЛАСНЫ, НЕ
|
||||
УСТАНАВЛИВАЙТЕ, НЕ КОПИРУЙТЕ И НЕ ИСПОЛЬЗУЙТЕ ПРОДУКТ.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
АВТОРСКОЕ ПРАВО
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Авторское право на все копии продукта принадлежат Производителю и защищено законодательством РФ и ряда других
|
||||
стран.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ОГРАНИЧЕННАЯ ГАРАНТИЯ И ПРАВОВАЯ ОГОВОРКА
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Вам не дается никаких гарантий. Все ваши возможные требования, притязания и претензии (в том числе и по
|
||||
качеству) будут НЕПРИЗНАННЫ.
|
||||
</p>
|
||||
|
||||
<h4>
|
||||
ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ
|
||||
</h4>
|
||||
|
||||
<p>
|
||||
Вам не дается никаких обязательств. Все ваши возможные требования будут НЕПРИЗНАННЫ.
|
||||
</p>
|
||||
<hr />
|
||||
|
||||
<a name="split"></a>
|
||||
<h3>Как использовать: Разделение файлов</h3>
|
||||
<p>
|
||||
Операция «Разделение файлов» служит для разбиения некоторого файла (далее, исходный файл) на n частей, заданного
|
||||
размера. Она требует следующих параметров:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>-fn="Имя файла"</code> - имя исходного файла.
|
||||
</li>
|
||||
<li>
|
||||
<code>-td="Путь"</code> - папка, в которую будут сохранены части файла.
|
||||
</li>
|
||||
<li>
|
||||
<code>-ps=«ЧИСЛО»></code> - размер части файла в байтах.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
В интерактивном режиме пользователь будет опрошен по каждому параметру.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Операция «Разделение файлов» может содержать следующие дополнительные параметры разбиения:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>/NoCheckHash</code> - не проверять части на совпадение с контрольными суммами.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DeleteSource</code> - после разбиения удаляется исходный файл.
|
||||
</li>
|
||||
<li>
|
||||
<code>/EncryptInfoFile</code> - нужно ли шифровать файл информации. <strong>ВНИМАНИЕ!</strong> Включение
|
||||
этого параметра обязывает Вас при сборке указывать в дополнительных параметрах сборки параметр
|
||||
<code>/DecryptInfoFile</code>. В противном случае, вы словите <strong>код возврата 3</strong> при попытке
|
||||
собрать файл.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Параметры вводятся через пробел, как в режиме параметров командной строки, так и в интерактивномрежиме.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Например, нужно разбить файл <code>C:\myFiles\myBigFile.mp4</code> на файлы размером 10 МБайт и сохранить файлы
|
||||
разбиения в папку <code>C:\myFilesSplited\</code>, удалив исходник, зашифровав файл информации о разбиении и не
|
||||
выдавая пользователю никаких запросов. Тогда вы должны запустить программу следующим способом:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter split -fn="C:\myFiles\myBigFile.mp4" -td="C:\myFilesSplited" -ps=10485760 /DeleteSource /EncryptInfoFile --silent
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="join"></a>
|
||||
<h3>Как использовать: Объединение файлов</h3>
|
||||
<p>
|
||||
Операция «Объединение файлов» соединяет разбитый ранее с помощью операции «Разделения файла» файл. Она требует
|
||||
следующих параметров:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>-ifn="Имя файла"</code> - имя файла с информацией о разбиении.
|
||||
</li>
|
||||
<li>
|
||||
<code>-tfn="Путь"</code> - файл, в который нужно собрать разбиение.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
В интерактивном режиме пользователь будет опрошен по каждому параметру.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Операция «Объединение файлов» может содержать следующие дополнительные параметры сборки:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>/NoCheckHash</code> - не проверять части на совпадение с контрольными суммами.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DeleteSource</code> - после объединения удаляются файлы разбиения.
|
||||
</li>
|
||||
<li>
|
||||
<code>/DecryptInfoFile</code> - нужно ли дешифровать файл информации. <strong>ВНИМАНИЕ!</strong> Включение
|
||||
этого параметра обязывает Вас при разбивке указывать в дополнительных параметрах разбиения параметр
|
||||
<code>/EncryptInfoFile</code>. В противном случае, вы словите <strong>код возврата 3</strong> при попытке
|
||||
собрать файл.
|
||||
</li>
|
||||
<li>
|
||||
<code>/IgnoreVersion</code> - отключить проверку версии файла информации (НЕ РЕКОМЕНДУЕТСЯ).
|
||||
</li>
|
||||
<li>
|
||||
<code>/SkipCheck</code> - отключить проверку собранного файла на соответствие оригиналу.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Параметры вводятся через пробел, как в режиме параметров командной строки, так и в интерактивномрежиме.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Например, нужно объединить файл, заданный информацией <code>C:\myFilesSplited\myBigFile.mp4.fsi</code>, в файл
|
||||
<code>C:\myFiles\myBigFile.mp4</code>, удалив файлы разбиения, дешифровав файл информации о разбиении и отключив
|
||||
проверку собранного файла на соответствие оригиналу. Тогда вы должны
|
||||
запустить программу следующим способом:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter join -ifn="C:\myFilesSplited\myBigFile.mp4.fsi" -tfn="C:\myFiles\myBigFile.mp4" /DeleteSource /DecryptInfoFile /SkipCheck
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<a name="options"></a>
|
||||
<h3>Как использовать: Параметры приложения</h3>
|
||||
<p>
|
||||
Операция «Параметры приложения» позволяет настроить параметры приложения и работает <strong>только в
|
||||
интерактивном режиме</strong>. Она требует
|
||||
следующих параметров:
|
||||
</p>
|
||||
|
||||
<table style="text-align: center; border: 2px solid black;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Параметр
|
||||
</th>
|
||||
<th>
|
||||
Возможные значение
|
||||
</th>
|
||||
<th>
|
||||
Описание
|
||||
</th>
|
||||
<th>
|
||||
Пример
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
language
|
||||
</td>
|
||||
<td>
|
||||
Строка (имя файла языка)
|
||||
</td>
|
||||
<td>
|
||||
Задаёт язык приложения
|
||||
</td>
|
||||
<td>
|
||||
language=russian
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<hr />
|
||||
|
||||
<a name="ConsoleParams"></a>
|
||||
<h3>Как использовать: Параметры консольной строки</h3>
|
||||
<p>
|
||||
Для использования программы в режиме параметров командной строки запустите программу, передав параметры
|
||||
командной строки в формате:
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
FileSplitter [ОПЕРАЦИЯ] [ПАРАМЕТРЫ ОПЕРАЦИИ] [ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ] [ТИХИЙ РЕЖИМ]
|
||||
</code>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
[ОПЕРАЦИЯ] может принимать следующие значения:
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<code>split</code> - выполнить <a href="#split">операцию разделения</a>.
|
||||
</li>
|
||||
<li>
|
||||
<code>join</code> - выполнить <a href="#join">операцию объединения</a>.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
[ПАРАМЕТРЫ ОПЕРАЦИИ] и [ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ] описаны в соответствующих разделах справки.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
[ТИХИЙ РЕЖИМ] работает только в режиме параметров командной строки и включается указанием:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<code>--silent</code> - наличие этого параметра указывает, что не должны выдаваться никакие запросы
|
||||
пользователю (так называемый «Тихий режим»).
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
Для выключения тихого режима просто не указывайте этот параметр.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
70
output/x32/languages/english.json
Normal file
70
output/x32/languages/english.json
Normal file
@ -0,0 +1,70 @@
|
||||
{
|
||||
//This file was translated with Yandex Translator (https://translate.yandex.ru/)
|
||||
//Application Parameters
|
||||
"AppTitle": "ANB Software File Splitter",
|
||||
"AppVersion": "Version: {0}",
|
||||
"AppCopyrights": "Copyrights (C) {0} by Alexander Babaev.",
|
||||
|
||||
//Messages
|
||||
"MessageNoParametersForSplit": "Split parameters are not set. For information about working with the program, see the file «<program's folder>\\Help\\English.html#ConsoleParams»",
|
||||
"MessageSplitAsk": "Information about splitting file:\n***{0}\n***Size: {1}\n***File hash: {2}\n***It is assumed to split into {3} parts(s)\nDo you want to start split? [Y|y - yes, any other letter - no]",
|
||||
"MessageStartSplit": "The splitting of the file {0} into parts of the size {1} and saving them in the directory {2} is started.",
|
||||
"MessageSplitFilePart": "Processing part {0} of {1}...",
|
||||
"MessageSplitComplete": "File splitting {0} is complete!",
|
||||
"MessageHashCheckStart": "Starting check the hash of the splitting",
|
||||
"MessageHashCheckFail": "Unfortunately, the file \"{0}\" did not pass the hash check!",
|
||||
"MessageHashCheckComplete": "Hash verification is complete!",
|
||||
"MessageJoinAsk": "Do you want to start joining file {0}? [Y|y - yes, any other letter - no]",
|
||||
"MessageStartJoin": "Joining of files specified by the information file {0} into the file {1} has started.",
|
||||
"MessageJoinUnsupportedFile": "Unfortunately, the version of the information file {0} is not supported!",
|
||||
"MessageJoinUnknownFile": "Can't read the information file! Maybe it's encrypted?",
|
||||
"MessageJoinHashError": "Unfortunately, the split files did not pass verification. Perhaps they are damaged?",
|
||||
"MessageJoinCheckError": "Unfortunately, the joined file did not pass the validation of join. Perhaps there were any mistakes?",
|
||||
"MessageJoinFilePart": "Processing part {0} of {1}...",
|
||||
"MessageJoinComplete": "File joining {0} is complete!",
|
||||
"MessagePleaseWaitToReady": "Please wait. Preparations for the operation are underway. This may take a long time, during which the program may seem to hang.",
|
||||
|
||||
//Interactive mode messages
|
||||
"InteractiveStartAsk": "Choose one of the actions:\n* S|s - splitting\n* J|j - joining\n* O|o - program's options\n* E|e - exit\nYour choice:",
|
||||
"InteractiveWrongInput": "Unknown action selected!",
|
||||
"InteractiveOperationFinish": "The operation is completed! Exit code is: {0}",
|
||||
"InteractiveFileNameNotExist": "The file does not exist! Repeat file entry? [Y|y - to repeat, any other letter - to abort operation]",
|
||||
"InteractiveFileNameExist": "The file exists! You need to select a non-existent file! Repeat file entry? [Y|y - to repeat, any other letter - to abort operation]",
|
||||
|
||||
"InteractiveSplitFileNameAsk": "Enter the name of the file to split (or drag it here):",
|
||||
"InteractiveSplitFileNameResult": "File selected for splitting: {0}",
|
||||
"InteractiveSplitTargetDirAsk": "Select the folder where you want to save the parts of the file (or leave it empty to use the folder of the split file):",
|
||||
"InteractiveSplitTargetDirResult": "The split files will be saved in the folder: {0}",
|
||||
"InteractiveSplitPartSizeAsk": "Enter the size of the part (in bytes):",
|
||||
"InteractiveSplitPartSizeAsk2": "You have selected the part size {0}. Is everything right? [Y|y - yes, continue; any other letter - no, repeat input]",
|
||||
"InteractiveSplitPartSizeResult": "Selected part size: {0}",
|
||||
"InteractiveSplitOptionsAsk": "Enter additional splitting parameters (space separator):",
|
||||
"InteractiveSplitOptionsResult": "Additional splitting parameters are selected: [{0}]",
|
||||
|
||||
"InteractiveJoinFileNameAsk": "Enter the name of the split information file (or drag it here):",
|
||||
"InteractiveJoinFileNameResult": "The file selected for the join is: {0}",
|
||||
"InteractiveJoinTargetFileNameAsk": "Select the name and path to the file to be joined (for example, c:\\myFiles\\myFile.txt ):",
|
||||
"InteractiveJoinTargetFileNameResult": "The file will be joined: {0}",
|
||||
"InteractiveJoinOptionsAsk": "Enter additional join parameters (space delimiter):",
|
||||
"InteractiveJoinOptionsResult": "Additional join parameters selected: [{0}]",
|
||||
|
||||
"InteractiveOptionsAsk": "Enter the program parameters (space delimiter):",
|
||||
"InteractiveOptionsConfirm": "Program parameters selected:\n{0}\nDo you confirm them? [Y|y - yes, any other letter - to abort]",
|
||||
"InteractiveOptionsResult": "The parameters are saved! To apply them, you need to restart the program...",
|
||||
|
||||
//Константы размеров
|
||||
"FileSizeStringsByte": "byte",
|
||||
"FileSizeStringsKByte": "KByte",
|
||||
"FileSizeStringsMByte": "MByte",
|
||||
"FileSizeStringsGByte": "GByte",
|
||||
"FileSizeStringsTByte": "TByte",
|
||||
|
||||
//Переводы кодов возврата
|
||||
"ExitCodeNamesAllDone": "Completed successfully",
|
||||
"ExitCodeNamesInfoVersionUnsupported": "The version of the split information file is not supported",
|
||||
"ExitCodeNamesInvalidParameters": "Invalid parameters",
|
||||
"ExitCodeNamesSplitFileHashError": "Error checking the hash sum of split files",
|
||||
"ExitCodeNamesTargetFileCheckError": "Error checking the integrity of joined file",
|
||||
"ExitCodeNamesUnknownInfoFile": "Unknown partitioning information file",
|
||||
"ExitCodeNamesUserAborted": "Aborted by the user"
|
||||
}
|
69
output/x32/languages/russian.json
Normal file
69
output/x32/languages/russian.json
Normal file
@ -0,0 +1,69 @@
|
||||
{
|
||||
//Параметры приложения
|
||||
"AppTitle": "ANB Software Делитель файлов",
|
||||
"AppVersion": "Версия: {0}",
|
||||
"AppCopyrights": "Авторские права (C) {0}, Александр Бабаев.",
|
||||
|
||||
//Сообщения
|
||||
"MessageNoParametersForSplit": "Не заданы параметры разбиения. Информацию о работе с программой смотрите в файле «<папка с программой>\\Help\\Russian.html#ConsoleParams»\"",
|
||||
"MessageSplitAsk": "Информация о разбиваемом файле:\n***{0}\n***Размер: {1}\n***Хэш файла: {2}\n***Предполагается разбиение на {3} части(-ей)\nВы хотите начать разбиение? [Y|y - да, Любая другая буква/слово/выражение - нет]",
|
||||
"MessageStartSplit": "Запущено разбиение файла {0} на части размером {1} и сохранением их в директории {2}.",
|
||||
"MessageSplitFilePart": "Идёт обработка части {0} из {1}...",
|
||||
"MessageSplitComplete": "Разбиение файла {0} завершено!",
|
||||
"MessageHashCheckStart": "Начинаю проверку хэша разбиения",
|
||||
"MessageHashCheckFail": "К сожалению, файл \"{0}\" не прошёл проверку хэша!",
|
||||
"MessageHashCheckComplete": "Проверка хэша завершена!",
|
||||
"MessageJoinAsk": "Вы хотите начать сборку файла {0}? [Y|y - да, любая другая буква/слово/выражение - нет]",
|
||||
"MessageStartJoin": "Запущено объединение файлов, заданных файлом информации {0}, в файл {1}.",
|
||||
"MessageJoinUnsupportedFile": "К сожалению, версия файла информации {0} не поддерживается!",
|
||||
"MessageJoinUnknownFile": "Не могу прочитать файл информации! Возможно он зашифрован?",
|
||||
"MessageJoinHashError": "К сожалению, разделённые файлы не прошли проверку. Возможно они повреждены?",
|
||||
"MessageJoinCheckError": "К сожалению, объединённый файл не прошли проверку корректности объединения. Возможно были какие-либо ошибки?",
|
||||
"MessageJoinFilePart": "Идёт обработка части {0} из {1}...",
|
||||
"MessageJoinComplete": "Объединение файла {0} завершено!",
|
||||
"MessagePleaseWaitToReady": "Пожалуйста, подождите. Идёт подготовка к операции. Это может занять длительное время, в течении которого программа может казаться зависшей.",
|
||||
|
||||
//Сообщения интерактивного режима
|
||||
"InteractiveStartAsk": "Выберете одно из действий:\n* S|s - разбиение\n* J|j - объединение\n* O|o - параметры программы\n* E|e - выход\nВаш выбор:",
|
||||
"InteractiveWrongInput": "Выбрано неизвестное действие!",
|
||||
"InteractiveOperationFinish": "Операция завершена с кодом: {0}",
|
||||
"InteractiveFileNameNotExist": "Файл не существует! Повторить ввод файла? [Y|y - для повтора, любая другая буква - прерывание операции]",
|
||||
"InteractiveFileNameExist": "Файл существует! Нужно выбрать несуществующий файл! Повторить ввод файла? [Y|y - для повтора, любая другая буква - прерывание операции]",
|
||||
|
||||
"InteractiveSplitFileNameAsk": "Введите имя разбиваемого файла (или перетащите его сюда):",
|
||||
"InteractiveSplitFileNameResult": "Для разбиения выбран файл: {0}",
|
||||
"InteractiveSplitTargetDirAsk": "Выберете папку, куда следует сохранить части файла (или оставьте пустым, чтобы использовать папку разбиваемого файла):",
|
||||
"InteractiveSplitTargetDirResult": "Файлы разбиения будут сохранены в папке: {0}",
|
||||
"InteractiveSplitPartSizeAsk": "Введите размер части (в байтах):",
|
||||
"InteractiveSplitPartSizeAsk2": "Вы выбрали размер части {0}. Всё правильно? [Y|y - да, продолжить, любая другая буква - нет, повторить ввод]",
|
||||
"InteractiveSplitPartSizeResult": "Выбран размер части: {0}",
|
||||
"InteractiveSplitOptionsAsk": "Введите дополнительные параметры разбиения (разделитель - пробел):",
|
||||
"InteractiveSplitOptionsResult": "Выбраны дополнительные параметры разбиения: [{0}]",
|
||||
|
||||
"InteractiveJoinFileNameAsk": "Введите имя файла информации о разбиении (или перетащите его сюда):",
|
||||
"InteractiveJoinFileNameResult": "Для сборки выбран файл: {0}",
|
||||
"InteractiveJoinTargetFileNameAsk": "Выберите имя и путь к собираемому файлу (например, c:\\myFiles\\myFile.txt):",
|
||||
"InteractiveJoinTargetFileNameResult": "Будет собран файл: {0}",
|
||||
"InteractiveJoinOptionsAsk": "Введите дополнительные параметры соединения (разделитель - пробел):",
|
||||
"InteractiveJoinOptionsResult": "Выбраны дополнительные параметры соединения: [{0}]",
|
||||
|
||||
"InteractiveOptionsAsk": "Введите параметры программы (разделитель - пробел):",
|
||||
"InteractiveOptionsConfirm": "Выбраны параметры программы:\n{0}\nВы их подтверждаете? [Y|y - да, любая другая буква - выход]",
|
||||
"InteractiveOptionsResult": "Параметры сохранены! Для их применения требуется перезапуск программы...",
|
||||
|
||||
//Константы размеров
|
||||
"FileSizeStringsByte": "байт",
|
||||
"FileSizeStringsKByte": "Кб",
|
||||
"FileSizeStringsMByte": "Мб",
|
||||
"FileSizeStringsGByte": "Гб",
|
||||
"FileSizeStringsTByte": "Тб",
|
||||
|
||||
//Переводы кодов возврата
|
||||
"ExitCodeNamesAllDone": "Успешно завершено",
|
||||
"ExitCodeNamesInfoVersionUnsupported": "Версия файла информации о разбиении не поддерживается",
|
||||
"ExitCodeNamesInvalidParameters": "Неверные параметры",
|
||||
"ExitCodeNamesSplitFileHashError": "Ошибка проверки хэш-суммы разделённых файлов",
|
||||
"ExitCodeNamesTargetFileCheckError": "Ошибка проверки целостности собираемого файла",
|
||||
"ExitCodeNamesUnknownInfoFile": "Неизвестный файл информации о разбиении",
|
||||
"ExitCodeNamesUserAborted": "Прервано пользователем"
|
||||
}
|
1
output/x32/settings.json
Normal file
1
output/x32/settings.json
Normal file
@ -0,0 +1 @@
|
||||
{"Language":"russian"}
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user