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*/)
|
static void Main(/*string[] args*/)
|
||||||
{
|
{
|
||||||
string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" };
|
// string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" };
|
||||||
Console.WriteLine($"start convert");
|
// Console.WriteLine($"start convert");
|
||||||
var inputFiles = new List<string>();
|
// var inputFiles = new List<string>();
|
||||||
var resultFile = "C:\\Test\\result.pdf";
|
// var resultFile = "C:\\Test\\result.pdf";
|
||||||
inputFiles.Add("11112222.docx");
|
// inputFiles.Add("11112222.docx");
|
||||||
inputFiles.Add("11117777.pdf");
|
// inputFiles.Add("11117777.pdf");
|
||||||
inputFiles.Add("22223333.xls");
|
// inputFiles.Add("22223333.xls");
|
||||||
inputFiles.Add("33334444.xlsx");
|
// inputFiles.Add("33334444.xlsx");
|
||||||
//inputFiles.Add("33334444.tts");
|
// //inputFiles.Add("33334444.tts");
|
||||||
|
|
||||||
var listOutNames = new List<string>();
|
// var listOutNames = new List<string>();
|
||||||
var filteredFilesNames = inputFiles
|
// var filteredFilesNames = inputFiles
|
||||||
.Distinct()
|
// .Distinct()
|
||||||
.Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe)))
|
// .Where(f => fileExtension.Any(fe => f.ToLower().EndsWith(fe)))
|
||||||
.ToList();
|
// .ToList();
|
||||||
FileInfo fileInfo = new FileInfo(resultFile);
|
// FileInfo fileInfo = new FileInfo(resultFile);
|
||||||
|
|
||||||
//matchesExtensions(inputFiles);
|
// //matchesExtensions(inputFiles);
|
||||||
foreach (var FileName in 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");
|
Console.WriteLine("win");
|
||||||
var outFile = StartConvertProcessAsync(FileName, outputFile);
|
|
||||||
Console.WriteLine($"convert file - {FileName}");
|
|
||||||
Console.ReadLine();
|
Console.ReadLine();
|
||||||
listOutNames.Add(outFile.Result.ToString());
|
|
||||||
}
|
}
|
||||||
Console.WriteLine("merged files");
|
if (OperatingSystem.IsLinux())
|
||||||
Console.ReadLine();
|
|
||||||
DoMerged(listOutNames, resultFile);
|
|
||||||
|
|
||||||
static void matchesExtensions(List<string> inputFiles)
|
|
||||||
{
|
{
|
||||||
string[] fileExtension = { ".xlsx", ".xls", ".ods", ".odt", ".doc", ".docx", ".pdf" };
|
Console.WriteLine("linux");
|
||||||
foreach (var file in inputFiles)
|
Console.ReadLine();
|
||||||
{
|
|
||||||
var fileExt = Path.GetExtension(file);
|
|
||||||
if (fileExtension.All(fe => fileExt != fe))
|
|
||||||
{
|
|
||||||
throw new FileFormatException($"Файл с именем: {file} не может быть добавлен в список файлов для конвертации и слияния в общий файл программы бурения. Не поддерживаемый формат файла");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DoMerged(IEnumerable<string> inputFiles, string outFile)
|
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)
|
//public static void StartConvertProcess(string inputFileName, string outFileName)
|
||||||
//{
|
//{
|
||||||
// using (Process pdfprocess = new Process())
|
// using (Process pdfprocess = new Process())
|
||||||
@ -98,6 +130,9 @@ namespace ConsoleApp1
|
|||||||
//}
|
//}
|
||||||
private static async Task<string> StartConvertProcessAsync(string inputFileName, string outFileName)
|
private static async Task<string> StartConvertProcessAsync(string inputFileName, string outFileName)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
var progrAndArg = getOptionsStartupProcess(inputFileName, outFileName);
|
||||||
|
|
||||||
//string outPath = "/home/eddie/Test/OutFiles";
|
//string outPath = "/home/eddie/Test/OutFiles";
|
||||||
string outPath = "C:\\Test\\OutFiles";
|
string outPath = "C:\\Test\\OutFiles";
|
||||||
var result = Cli.Wrap("C:\\Program Files\\LibreOffice\\program\\soffice.exe")
|
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