diff --git a/DATabase/DATabase.cs b/DATabase/DATabase.cs
index 730f1089..f1a1a684 100644
--- a/DATabase/DATabase.cs
+++ b/DATabase/DATabase.cs
@@ -1,6 +1,7 @@
using System;
using System.Data.SQLite;
using System.IO;
+using System.IO.Compression;
using System.Xml;
using System.Xml.Linq;
@@ -471,6 +472,9 @@ Make a selection:
/// True if the output file should be in RomVault format (default false)
private static void InitGenerateAll(string outdir, bool norename, bool old)
{
+ string actualdir = outdir + "/";
+ outdir = outdir + "/temp/";
+
// Generate system-merged
string query = @"SELECT DISTINCT systems.id
FROM systems
@@ -554,6 +558,24 @@ Make a selection:
// Generate MEGAMERGED
InitGenerate("", "", outdir, norename, old);
+
+ // Zip up all of the files that were generated
+ ZipArchive zip = ZipFile.Open(actualdir + "dats-" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip", ZipArchiveMode.Create);
+ foreach (String filename in Directory.EnumerateFiles(outdir))
+ {
+ if (filename.EndsWith(".xml") || filename.EndsWith(".dat"))
+ {
+ string internalFolder = (filename.Contains("ALL (merged") ? "" :
+ filename.Contains("merged") ? "merged-system/" :
+ filename.Contains("ALL") ? "merged-source/" : "custom/");
+ zip.CreateEntryFromFile(filename, internalFolder + filename);
+ }
+ }
+ zip.Dispose();
+
+ // Remove all of the DATs from the folder
+ Directory.Delete(outdir, true);
+
return;
}
@@ -612,7 +634,7 @@ or 'b' to go back to the previous menu:
}
else
{
- Console.WriteLine("I'm sorry but " + filename + "doesn't exist!");
+ Console.WriteLine("I'm sorry but " + filename + " doesn't exist!");
}
return;
}
diff --git a/DATabase/DATabase.csproj b/DATabase/DATabase.csproj
index 9c1fee4d..ad728d1b 100644
--- a/DATabase/DATabase.csproj
+++ b/DATabase/DATabase.csproj
@@ -58,6 +58,8 @@
..\packages\System.Data.SQLite.Linq.1.0.99.0\lib\net451\System.Data.SQLite.Linq.dll
True
+
+