forked from ddrilling/AsbCloudServer
added light console app for test "OS detection"
This commit is contained in:
parent
46074b6bd1
commit
dd0e49be0a
@ -13,49 +13,62 @@ namespace ConsoleApp1
|
||||
{
|
||||
static void Main(/*string[] args*/)
|
||||
{
|
||||
string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" };
|
||||
Console.WriteLine($"start convert");
|
||||
var inputFiles = new List<string>();
|
||||
var resultFile = "C:\\Test\\result.pdf";
|
||||
inputFiles.Add("11112222.docx");
|
||||
inputFiles.Add("11117777.pdf");
|
||||
inputFiles.Add("22223333.xls");
|
||||
inputFiles.Add("33334444.xlsx");
|
||||
//inputFiles.Add("33334444.tts");
|
||||
// string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" };
|
||||
// Console.WriteLine($"start convert");
|
||||
// var inputFiles = new List<string>();
|
||||
// var resultFile = "C:\\Test\\result.pdf";
|
||||
// inputFiles.Add("11112222.docx");
|
||||
// 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();
|
||||
FileInfo fileInfo = new FileInfo(resultFile);
|
||||
// var listOutNames = new List<string>();
|
||||
// var filteredFilesNames = inputFiles
|
||||
// .Distinct()
|
||||
// .Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe)))
|
||||
// .ToList();
|
||||
// FileInfo fileInfo = new FileInfo(resultFile);
|
||||
|
||||
//matchesExtensions(inputFiles);
|
||||
foreach (var FileName in inputFiles)
|
||||
// //matchesExtensions(inputFiles);
|
||||
// foreach (var FileName in inputFiles)
|
||||
// {
|
||||
// var outputFile = Path.ChangeExtension(FileName, ".pdf");
|
||||
// var outFile = StartConvertProcessAsync(FileName, outputFile);
|
||||
// Console.WriteLine($"convert file - {FileName}");
|
||||
// Console.ReadLine();
|
||||
// listOutNames.Add(outFile.Result.ToString());
|
||||
// }
|
||||
// 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} не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения. Не поддерживаемый формат файла");
|
||||
// }
|
||||
|
||||
// }
|
||||
// }
|
||||
if (OperatingSystem.IsWindows())
|
||||
{
|
||||
var outputFile = Path.ChangeExtension(FileName, ".pdf");
|
||||
var outFile = StartConvertProcessAsync(FileName, outputFile);
|
||||
Console.WriteLine($"convert file - {FileName}");
|
||||
Console.WriteLine("win");
|
||||
Console.ReadLine();
|
||||
listOutNames.Add(outFile.Result.ToString());
|
||||
}
|
||||
Console.WriteLine("merged files");
|
||||
Console.ReadLine();
|
||||
DoMerged(listOutNames, resultFile);
|
||||
|
||||
static void matchesExtensions(List<string> inputFiles)
|
||||
if (OperatingSystem.IsLinux())
|
||||
{
|
||||
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} не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения. Не поддерживаемый формат файла");
|
||||
}
|
||||
|
||||
}
|
||||
Console.WriteLine("linux");
|
||||
Console.ReadLine();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void DoMerged(IEnumerable<string> inputFiles, string outFile)
|
||||
@ -78,6 +91,25 @@ namespace ConsoleApp1
|
||||
};
|
||||
}
|
||||
|
||||
private static (string programFile, string programArg) getOptionsStartupProcess(string inputFileName, string resultFileDir)
|
||||
{
|
||||
(string programFile, string programArg) startupOptions;
|
||||
if (OperatingSystem.IsWindows())
|
||||
{
|
||||
startupOptions.programFile = "C:\\Program Files\\LibreOffice\\program\\soffice.exe";
|
||||
startupOptions.programArg = $"-headless -convert-to pdf {inputFileName} --outdir {resultFileDir}";
|
||||
return startupOptions;
|
||||
}
|
||||
if (OperatingSystem.IsLinux())
|
||||
{
|
||||
startupOptions.programFile = "/usr/bin/soffice";
|
||||
startupOptions.programArg = $"--headless --convert-to pdf {inputFileName} --outdir {resultFileDir}";
|
||||
return (startupOptions);
|
||||
}
|
||||
|
||||
throw new NotSupportedException("Вызов процесса в текущей операционной системе не возможен");
|
||||
}
|
||||
|
||||
//public static void StartConvertProcess(string inputFileName, string outFileName)
|
||||
//{
|
||||
// using (Process pdfprocess = new Process())
|
||||
@ -98,6 +130,9 @@ namespace ConsoleApp1
|
||||
//}
|
||||
private static async Task<string> StartConvertProcessAsync(string inputFileName, string outFileName)
|
||||
{
|
||||
|
||||
var progrAndArg = getOptionsStartupProcess(inputFileName, outFileName);
|
||||
|
||||
//string outPath = "/home/eddie/Test/OutFiles";
|
||||
string outPath = "C:\\Test\\OutFiles";
|
||||
var result = Cli.Wrap("C:\\Program Files\\LibreOffice\\program\\soffice.exe")
|
||||
|
17
ConsoleApp1/Properties/PublishProfiles/FolderProfile.pubxml
Normal file
17
ConsoleApp1/Properties/PublishProfiles/FolderProfile.pubxml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Any CPU</Platform>
|
||||
<PublishDir>C:\home\linux_test_test</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
|
||||
<SelfContained>true</SelfContained>
|
||||
<PublishSingleFile>false</PublishSingleFile>
|
||||
<PublishTrimmed>false</PublishTrimmed>
|
||||
</PropertyGroup>
|
||||
</Project>
|
Loading…
Reference in New Issue
Block a user