Initial Commit
This commit is contained in:
117
SplitPdfConsole/Program.cs
Normal file
117
SplitPdfConsole/Program.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user