ElwigData: Check zip file integrity
All checks were successful
Test / Run tests (push) Successful in 1m59s
All checks were successful
Test / Run tests (push) Successful in 1m59s
This commit is contained in:
@@ -75,6 +75,7 @@ namespace Elwig.Helpers.Export {
|
||||
foreach (var filename in filenames) {
|
||||
// TODO read encrypted files
|
||||
using var zip = ZipFile.Open(filename, ZipArchiveMode.Read);
|
||||
await zip.CheckIntegrity();
|
||||
|
||||
var version = zip.GetEntry("version");
|
||||
using (var reader = new StreamReader(version!.Open(), Utils.UTF8)) {
|
||||
@@ -370,11 +371,12 @@ namespace Elwig.Helpers.Export {
|
||||
}.Export(filename);
|
||||
}
|
||||
|
||||
public static void ImportDatabase(string filename) {
|
||||
public static async Task ImportDatabase(string filename) {
|
||||
var oldName = Path.ChangeExtension(App.Config.DatabaseFile, ".old.sqlite3");
|
||||
var newName = Path.ChangeExtension(App.Config.DatabaseFile, ".new.sqlite3");
|
||||
try {
|
||||
using (var zip = ZipFile.Open(filename, ZipArchiveMode.Read)) {
|
||||
await zip.CheckIntegrity();
|
||||
var db = zip.GetEntry("database.sqlite3")!;
|
||||
db.ExtractToFile(newName, true);
|
||||
}
|
||||
|
Reference in New Issue
Block a user