clean keep amount added to dest

This commit is contained in:
mikx 2024-02-27 21:15:20 -05:00
parent 190582b6dc
commit 64e4cb3c1a
1 changed files with 11 additions and 10 deletions

View File

@ -23,7 +23,7 @@ namespace MxB
public bool inc { get; set; } public bool inc { get; set; }
} }
public static string version = "1.5.0"; public static string version = "1.6.0";
public static string zipname = ""; public static string zipname = "";
public static string zippath = ""; public static string zippath = "";
static void Main(string[] args) static void Main(string[] args)
@ -96,6 +96,7 @@ namespace MxB
{ {
int sc = j.source.Count; int sc = j.source.Count;
int scur = 1; int scur = 1;
if (!Directory.Exists($@"tmp\{j.name}")) { Directory.CreateDirectory($@"tmp\{j.name}"); }
foreach (var js in j.source) foreach (var js in j.source)
{ {
var sourceType = js.Split('|')[0]; var sourceType = js.Split('|')[0];
@ -105,8 +106,7 @@ namespace MxB
if (sourceType == "D") { DirectoryInfo dInfo = new DirectoryInfo(sourcePath); sizeOfDir = DirectorySize(dInfo, true); } if (sourceType == "D") { DirectoryInfo dInfo = new DirectoryInfo(sourcePath); sizeOfDir = DirectorySize(dInfo, true); }
if (sourceType == "F") { FileInfo fInfo = new FileInfo(sourcePath); sizeOfDir = FileSize(fInfo); } if (sourceType == "F") { FileInfo fInfo = new FileInfo(sourcePath); sizeOfDir = FileSize(fInfo); }
Utilities.Message.CMW($"[{j.name}][{sourceType}][{((double)sizeOfDir) / (1024 * 1024):N2}MB]{scur}/{sc}] Processing...", true, 1); Utilities.Message.CMW($"[{j.name}][{sourceType}][{((double)sizeOfDir) / (1024 * 1024):N2}MB]{scur}/{sc}] Processing...", true, 1);
if (!Directory.Exists($@"tmp\{j.name}")) { Directory.CreateDirectory($@"tmp\{j.name}"); }
switch (sourceType) switch (sourceType)
{ {
case "D": case "D":
@ -127,21 +127,22 @@ namespace MxB
break; break;
} }
scur++; scur++;
} }
foreach (var dest in j.destination) foreach (var dest in j.destination)
{ {
if (!Directory.Exists($@"{dest}\{j.name}")) { Directory.CreateDirectory($@"{dest}\{j.name}"); } var deststr = dest.Split('|')[1];
if (!Directory.Exists($@"{deststr}\{j.name}")) { Directory.CreateDirectory($@"{deststr}\{j.name}"); }
if (j.zip) if (j.zip)
{ {
CreateZip(j.name, day, hour, lp); CreateZip(j.name, day, hour, lp);
File.Copy($@"tmp\{j.name}-D{day}-H{hour}.zip", $@"{dest}\{j.name}\{j.name}-D{day}-H{hour}-M{minute}.zip"); File.Copy($@"tmp\{j.name}-D{day}-H{hour}.zip", $@"{deststr}\{j.name}\{j.name}-D{day}-H{hour}-M{minute}.zip");
ClearFolder($@"tmp");
} }
else else
{ {
CopyFilesRecursively($@"tmp\{j.name}", dest, null); CopyFilesRecursively($@"tmp\{j.name}", deststr, null);
} }
} }
ClearFolder($@"tmp");
} }
else else
{ {
@ -149,15 +150,15 @@ namespace MxB
} }
} else if (args.Contains("--clean")) } else if (args.Contains("--clean"))
{ {
int cc = Convert.ToInt32(args[2]);
string jnarg = args[1]; string jnarg = args[1];
RootJobs j = JsonConvert.DeserializeObject<RootJobs>(File.ReadAllText($@"{lp}\jobs\{jnarg}.json")); RootJobs j = JsonConvert.DeserializeObject<RootJobs>(File.ReadAllText($@"{lp}\jobs\{jnarg}.json"));
Utilities.Message.CMW($"[{j.name}] Cleaning...", true, 1); Utilities.Message.CMW($"[{j.name}] Cleaning...", true, 1);
foreach (var d in j.destination) foreach (var d in j.destination)
{ {
int destkeep = Convert.ToInt32(d.Split('|')[0]);
var directory = new DirectoryInfo(d); var directory = new DirectoryInfo(d);
var query = directory.GetFiles("*.zip", SearchOption.AllDirectories); var query = directory.GetFiles("*.zip", SearchOption.AllDirectories);
foreach (var file in query.OrderBy(file => file.CreationTime).Skip(cc)) foreach (var file in query.OrderByDescending(file => file.CreationTime).Skip(destkeep))
{ {
file.Delete(); file.Delete();
} }