Добавьте файлы проекта.

This commit is contained in:
Alexander 2023-04-08 14:45:14 +03:00
parent 8418b79f7d
commit 66b3a8cc77
9 changed files with 256 additions and 0 deletions

View File

@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>FileSplitter.Console</RootNamespace>
<AssemblyName>FileSplitter</AssemblyName>
</PropertyGroup>
</Project>

66
FileSplitter/Program.cs Normal file
View File

@ -0,0 +1,66 @@
//Приветственное сообщение
Console.WriteLine("ANB Software Делитель файлов");
Console.WriteLine("в. 2023.04.08");
//Вывожу помощь
Help();
//Команда
string command;
//Начинаю цикл
do
{
//Запрос команды
Console.WriteLine("Введите команду:");
//Считывание команды
command = (Console.ReadLine() ?? "").ToLower();
//Выбор действия
switch (command)
{
////Если команда "Шифровка"
//case "crypt" or "c":
// //Запускаю сценарий шифровки
// await CryptAsync();
// break;
////Если команда "Дешифровка"
//case "delete" or "d":
// //Запускаю сценарий дешифровки
// await DecryptAsync();
// break;
////Если команда "Установочные файлы"
//case "ifiles" or "i":
// //Запускаю сценарий создания установочных файлов
// await CreateInstallFilesInfoAsync();
// break;
////Если команда "Помощь"
//case "help" or "h":
// //Запускаю сценарий помощи
// Help();
// break;
//Если что-то другое
default:
//Вывожу сообщение об ошибке, если команда не "Выход"
if (command is not ("exit" or "e"))
Console.WriteLine("Команда не опознана! Повторите попытку ещё раз, введите [h]elp для помощи или введите [e]xit для выхода...");
break;
}
} while (command is not ("exit" or "e"));
static void SplitFile(string path)
{
}
//Информация о работе с программой
static void Help ()
{
//Публикую сообщение о работе с программой
Console.WriteLine("Информация о работе с программой:\n\t" +
"[c]rypt - шифровка архива\n\t" +
"[d]ecrypt - дешифровка архива\n\t" +
"[i]files - создание списка установочных файлов\n\t" +
"[e]xit - Выход из программы\n\t[h]elp - Повторный вывод этого сообщения.");
}

31
FileSplitterProj.sln Normal file
View File

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33516.290
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileSplitter", "FileSplitter\FileSplitter.csproj", "{1FD6DA70-8D93-49A3-AAA3-EFB909AD937F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileSplitterShared", "FileSplitterShared\FileSplitterShared.csproj", "{0D7F015B-7E38-4384-A456-3BE07DFE2724}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1FD6DA70-8D93-49A3-AAA3-EFB909AD937F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1FD6DA70-8D93-49A3-AAA3-EFB909AD937F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1FD6DA70-8D93-49A3-AAA3-EFB909AD937F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1FD6DA70-8D93-49A3-AAA3-EFB909AD937F}.Release|Any CPU.Build.0 = Release|Any CPU
{0D7F015B-7E38-4384-A456-3BE07DFE2724}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D7F015B-7E38-4384-A456-3BE07DFE2724}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D7F015B-7E38-4384-A456-3BE07DFE2724}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D7F015B-7E38-4384-A456-3BE07DFE2724}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {66369161-B8DF-4F9E-91A7-5B1D5B111763}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,24 @@
using FileSplitter.Shared.Interfaces;
namespace FileSplitter.Shared.Classes;
/// <summary>
/// Информация о разбиении
/// </summary>
public class FileSplitInfo
{
/// <summary>
/// Версия программы, необходимая для сборки файла
/// </summary>
public string? FileSplitterVersion { get; set; }
/// <summary>
/// Информация о собираемом файле
/// </summary>
public ITargetFileInfo? TargetFile { get; set; }
/// <summary>
/// Информация о частях файла
/// </summary>
public List<ISplitFile>? SplitFiles { get; set; }
}

View File

@ -0,0 +1,29 @@
using FileSplitter.Shared.Interfaces;
namespace FileSplitter.Shared.Classes;
/// <summary>
/// Разделенный файл
/// </summary>
public class SplitFile: ISplitFile
{
/// <summary>
/// Порядок части
/// </summary>
public byte Num { get; set; }
/// <summary>
/// Размер части
/// </summary>
public long Size { get; set; }
/// <summary>
/// Смещение начала части от начала итогового файла
/// </summary>
public long Offset { get; set; }
/// <summary>
/// md5-сумма части для проверки
/// </summary>
public byte[]? Hash { get; set; }
}

View File

@ -0,0 +1,29 @@
using FileSplitter.Shared.Interfaces;
namespace FileSplitter.Shared.Classes;
/// <summary>
/// Информация о целевом файле
/// </summary>
public class TargetFileInfo: ITargetFileInfo
{
/// <summary>
/// Имя файла
/// </summary>
public string? FileName { get; set; }
/// <summary>
/// Размер файла
/// </summary>
public long FileSize { get; set; }
/// <summary>
/// md5-сумма файла для проверки
/// </summary>
public byte[]? FileHash { get; set; }
/// <summary>
/// Количество частей
/// </summary>
public byte SplitCount { get; set; }
}

View File

@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AssemblyName>FileSplitterShared</AssemblyName>
<RootNamespace>FileSplitter.Shared</RootNamespace>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,27 @@
namespace FileSplitter.Shared.Interfaces;
/// <summary>
/// Интерфейс разделенного файла
/// </summary>
public interface ISplitFile
{
/// <summary>
/// Порядок части
/// </summary>
public byte Num { get; set; }
/// <summary>
/// Размер части
/// </summary>
public long Size { get; set; }
/// <summary>
/// Смещение начала части от начала итогового файла
/// </summary>
public long Offset { get; set; }
/// <summary>
/// md5-сумма части для проверки
/// </summary>
public byte[]? Hash { get; set; }
}

View File

@ -0,0 +1,27 @@
namespace FileSplitter.Shared.Interfaces;
/// <summary>
/// Информация о целевом файле
/// </summary>
public interface ITargetFileInfo
{
/// <summary>
/// Имя файла
/// </summary>
public string? FileName { get; set; }
/// <summary>
/// Размер файла
/// </summary>
public long FileSize { get; set; }
/// <summary>
/// md5-сумма файла для проверки
/// </summary>
public byte[]? FileHash { get; set; }
/// <summary>
/// Количество частей
/// </summary>
public byte SplitCount { get; set; }
}