Добавлено исключение некорректного формата файла

This commit is contained in:
eugeniy_ivanov 2023-01-17 05:14:04 +05:00
parent c2afbf4d55
commit 1b834e7752
2 changed files with 30 additions and 7 deletions

View File

@ -45,22 +45,29 @@ namespace AsbCloudInfrastructure.Services.DrillingProgram.Convert
public async Task GetConverteAndMergedFileAsync(IEnumerable<string> filesNames, string resultPath)
{
var filteredFilesNames = filesNames
foreach (var file in filesNames)
{
var fileExt = Path.GetExtension(file);
if (fileExtension.All(fe => fileExt != fe))
{
throw new FileFormatException($"Файл с именем: {file} - неподдерживаемого формата. Он не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения.");
}
}
var listFileNames = filesNames
.Distinct()
.Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe)))
.ToList();
var listFileNames = filteredFilesNames
.ToList()
.Select(o => new {
inputFile = o,
convertedFile = Path.ChangeExtension(o, ".pdf")
});
})
.ToList();
foreach (var fileName in listFileNames)
{
if (!fileName.inputFile.ToLower().EndsWith(".pdf"))
await StartConvertProcessAsync(fileName.inputFile, fileName.convertedFile);
}
DoMergedAsync(listFileNames.Select(c => c.convertedFile), resultPath);
}
}
}
}

View File

@ -21,12 +21,14 @@ namespace ConsoleApp1
inputFiles.Add("11117777.pdf");
inputFiles.Add("22223333.xls");
inputFiles.Add("33334444.xlsx");
inputFiles.Add("33334444.tts");
var listOutNames = new List<string>();
var filteredFilesNames = inputFiles
.Distinct()
.Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe)))
.ToList();
matchesExtensions(inputFiles);
foreach (var FileName in inputFiles)
{
var outputFile = Path.ChangeExtension(FileName, ".pdf");
@ -38,6 +40,20 @@ namespace ConsoleApp1
Console.WriteLine("merged files");
Console.ReadLine();
DoMerged(listOutNames, resultFile);
static void matchesExtensions(List<string> inputFiles)
{
string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" };
foreach (var file in inputFiles)
{
var fileExt = Path.GetExtension(file);
if (fileExtension.All(fe => fileExt != fe))
{
throw new FileFormatException($"Файл с именем: {file} не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения. Не поддерживаемый формат файла");
}
}
}
}
public static void DoMerged(IEnumerable<string> inputFiles, string outFile)