diff --git a/BoerseDataConvert/BoerseDataConvert/Model/Params.cs b/BoerseDataConvert/BoerseDataConvert/Model/Params.cs new file mode 100644 index 0000000..8229839 --- /dev/null +++ b/BoerseDataConvert/BoerseDataConvert/Model/Params.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BoerseDataConvert +{ + class Params + { + + } +} diff --git a/BoerseDataConvert/BoerseDataConvert/Properties/launchSettings.json b/BoerseDataConvert/BoerseDataConvert/Properties/launchSettings.json new file mode 100644 index 0000000..1f48802 --- /dev/null +++ b/BoerseDataConvert/BoerseDataConvert/Properties/launchSettings.json @@ -0,0 +1,8 @@ +{ + "profiles": { + "BoerseDataConvert": { + "commandName": "Project", + "commandLineArgs": "-i TestData-2021_07_02.zip -d input -o output -t \"D:\\Code\\ИТ Кариера\\Стаж\\github\\BoerseDataConvert\\tags.txt\"" + } + } +} \ No newline at end of file diff --git a/BoerseDataConvert/BoerseDataConvert/Views/Program.cs b/BoerseDataConvert/BoerseDataConvert/Views/Program.cs index 166a9ec..0204e89 100644 --- a/BoerseDataConvert/BoerseDataConvert/Views/Program.cs +++ b/BoerseDataConvert/BoerseDataConvert/Views/Program.cs @@ -38,13 +38,13 @@ namespace BoerseDataConvert try { - CheckFreeDisk(outputDir); + CheckFreeDisk(zipFile, outputDir); ZipExtract(zipFile, inputDir); } catch (Exception e) { Console.Error.WriteLine(e.Message); - Environment.Exit(0); + Environment.Exit(Environment.ExitCode); } // only read filenames @@ -82,17 +82,19 @@ namespace BoerseDataConvert Console.WriteLine("-h or --help - Prints this message"); Environment.Exit(0); } - static void CheckFreeDisk(string outputDir) + static void CheckFreeDisk(string zipFile, string outputDir) { double gibibyte = 1073741824; DriveInfo driveInfo = new DriveInfo(Directory.GetDirectoryRoot(outputDir)); double availableSpace = driveInfo.AvailableFreeSpace; - Console.WriteLine($"INFO: {availableSpace / gibibyte}GiB available"); - if (availableSpace < 2147483648) + FileInfo fi = new FileInfo(zipFile); + double checkedSpace = fi.Length * 100; + if (availableSpace < checkedSpace) { Environment.ExitCode = 3; - throw new IOException($"ERROR: Insufficient disk space, {availableSpace / gibibyte}GiB less than 2GiB"); + throw new IOException($"ERROR: Estimated required space: {checkedSpace / gibibyte:f2}GiB. Available: {availableSpace / gibibyte:f2}GiB"); } + Console.WriteLine($"INFO: {availableSpace / gibibyte:f2}GiB available"); } static string[] InputValidate(string[] args) {