Initial Commit

This commit is contained in:
dev-mkoebis
2026-07-09 15:43:52 +02:00
commit 0c9c5cb085
9 changed files with 839 additions and 0 deletions

117
SplitPdfConsole/Program.cs Normal file
View File

@@ -0,0 +1,117 @@
using System;
using System.IO;
using System.Reflection;
using System.Threading;
using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace SplitPdf
{
class Program
{
public static string importFilesPath = @"\\fsdeg002\DatenStA61_S\Bauvorhaben\Import";
//private static string sourcePdfFilesPath = @"C:\Test\Compressor_In";
private static string sourcePdfFilesPath = @"C:\TEMP";
//private static string destinationPdfFilesPath = @"C:\Test\Compressor_Out";
private static string destinationPdfFilesPath = @"C:\temp_out";
public static List<string> vorgänge = new List<string>();
const int LIMIT = 30000000;
static async Task Main(string[] args)
{
try
{
await SplitPdfInSubDir(sourcePdfFilesPath);
//CopyFolderAndFiles(new DirectoryInfo(sourcePdfFilesPath), new DirectoryInfo(destinationPdfFilesPath));
//DeleteSourceFiles(new DirectoryInfo(sourcePdfFilesPath));
//Pdf.GenerateNewImportFiles(vorgänge);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public static async Task<bool> SplitPdfInSubDir(string path)
{
var info = new DirectoryInfo(path);
var countDir = info.GetDirectories().Length;
bool result = false;
int teil = 0;
if (countDir != 0)
{
foreach (var dir in info.GetDirectories())
{
await SplitPdfInSubDir(dir.ToString());
}
}
else
{
var count = Directory.GetFiles(path, "*.pdf").Length;
if (count != 0)
{
foreach (var file in Directory.GetFiles(path))
{
var fi = new FileInfo(file);
vorgänge.Add(path.Split('\\').LastOrDefault());
if (fi.Length < LIMIT)// || fi.FullName.Contains("Teil"))
continue;
Console.WriteLine("splitting... {0}", fi.Name);
await Task.Run(() =>
{
result = Pdf.SplitBySize(file, LIMIT, ref teil);
});
File.Delete(fi.FullName);
}
}
}
return result;
}
public static void CopyFolderAndFiles(DirectoryInfo source, DirectoryInfo target)
{
Directory.CreateDirectory(target.FullName);
if (source.GetFiles().Length > 1)
{
foreach (FileInfo fi in source.GetFiles().Where(x => x.FullName.Contains("Teil")))
{
Console.WriteLine("copying... {0}", fi.Name);
fi.CopyTo(Path.Combine(target.FullName, fi.Name), true);
}
}
else
{
foreach (FileInfo fi in source.GetFiles())
{
fi.CopyTo(Path.Combine(target.FullName, fi.Name), true);
}
}
//Directories
foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
{
DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name);
CopyFolderAndFiles(diSourceSubDir, nextTargetSubDir);
}
}
public static void DeleteSourceFiles(DirectoryInfo source)
{
foreach (var item in source.GetDirectories())
{
Directory.Delete(item.FullName, true);
}
}
}
}