77 lines
1.9 KiB
C#
77 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.IO;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace Volian.Base.Library
|
|
{
|
|
public static class TmpFile
|
|
{
|
|
public static string CreateFileName(string procNumber, string sectNumber, string sectTitle)
|
|
{
|
|
return FixFileName(procNumber + "_" + ((sectNumber ?? "") != "" ? sectNumber : sectTitle));
|
|
}
|
|
public static string CreateFileName(string procNumber)
|
|
{
|
|
return FixFileName(procNumber);
|
|
}
|
|
public static string FixFileName(string name)
|
|
{
|
|
return Regex.Replace(name, "[ .,/]", "_") + ".pdf";
|
|
}
|
|
public static void RemoveAllTmps()
|
|
{
|
|
RemoveTmpPDFs();
|
|
RemoveTmpDocs();
|
|
RemoveTmps("*.png");
|
|
}
|
|
public static void RemoveTmpPDFs()
|
|
{
|
|
string tmpFolder = VlnSettings.TemporaryFolder;
|
|
DirectoryInfo di = new DirectoryInfo(tmpFolder);
|
|
if (!di.Exists) return;
|
|
foreach (FileInfo fi in di.GetFiles("*.pdf"))
|
|
{
|
|
try
|
|
{
|
|
// only delete pdfs if they are older than an hour - just to be
|
|
// safe. During creation of pdf's, separate pdfs are created for
|
|
// word sections and imported into the main resulting pdf.
|
|
if (fi.LastAccessTime.Ticks < (DateTime.Now.Ticks - TimeSpan.TicksPerHour))
|
|
fi.Delete();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
continue; // if an error, go onto next file.
|
|
}
|
|
}
|
|
|
|
}
|
|
public static void RemoveTmpDocs()
|
|
{
|
|
RemoveTmps("*.doc");
|
|
}
|
|
|
|
private static void RemoveTmps(string extension)
|
|
{
|
|
string tmpFolder = VlnSettings.TemporaryFolder;
|
|
DirectoryInfo di = new DirectoryInfo(tmpFolder);
|
|
if (!di.Exists) return;
|
|
foreach (FileInfo fi in di.GetFiles(extension))
|
|
{
|
|
try
|
|
{
|
|
// delete any docs. If it fails, just go on to the next one becase
|
|
// it may be open from another process.
|
|
fi.Delete();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
continue; // if an error, go onto next file.
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|