update 20251008
This commit is contained in:
123
OnDocUpdate/Form1.cs
Normal file
123
OnDocUpdate/Form1.cs
Normal file
@@ -0,0 +1,123 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Schema;
|
||||
using System.IO.Compression;
|
||||
using System.IO;
|
||||
using System.Linq.Expressions;
|
||||
|
||||
namespace OnDocUpdate
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Form1_Load(object sender, EventArgs e)
|
||||
{
|
||||
timer1.Enabled = true;
|
||||
}
|
||||
|
||||
public void Update() {
|
||||
try
|
||||
{
|
||||
Application.DoEvents();
|
||||
string filename = Params.UpdatePath + @"\version.txt";
|
||||
string version = "";
|
||||
if (System.IO.File.Exists(filename))
|
||||
{
|
||||
version = System.IO.File.ReadAllText(filename);
|
||||
if (version != Params.Version)
|
||||
{
|
||||
MessageBox.Show("Die angeforderte Update-Version " + Params.Version + " ist nicht verfügbar", "OnDoc-Update", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
string sourcefilename = Params.UpdatePath + @"\" + Params.Version.Replace(".", "_") + "_OnDocUpdate.zip";
|
||||
string destfilename = Params.DestPath + @"\" + Params.Version.Replace(".", "_") + "_OnDocUpdate.zip";
|
||||
if (!System.IO.File.Exists(sourcefilename))
|
||||
{
|
||||
MessageBox.Show("Die angeforderte Update-Datei " + sourcefilename + " ist nicht vorhanden", "OnDoc-Update", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
this.Close();
|
||||
return;
|
||||
}
|
||||
if (!System.IO.Directory.Exists(Params.DestPath))
|
||||
{
|
||||
MessageBox.Show("Die angegebene Zielverzeichnis " + Params.DestPath + " ist nicht vorhanden", "OnDoc-Update", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
System.IO.File.Copy(sourcefilename, destfilename, true);
|
||||
if (ExtractAndOverwrite(destfilename, Params.DestPath))
|
||||
{
|
||||
if (Params.StartApp != "")
|
||||
{
|
||||
Process.Start(Params.StartApp);
|
||||
}
|
||||
}
|
||||
this.Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show(ex.Message);
|
||||
}
|
||||
|
||||
}
|
||||
private bool ExtractAndOverwrite(string zipfile, string destpath)
|
||||
{
|
||||
try
|
||||
{
|
||||
string zipPath = zipfile;
|
||||
string tempPath = Path.Combine(destpath, "tempUnzip");
|
||||
string extractPath = destpath;
|
||||
if (!System.IO.Directory.Exists(tempPath))
|
||||
{
|
||||
System.IO.Directory.CreateDirectory(tempPath);
|
||||
}
|
||||
ZipFile.ExtractToDirectory(zipPath, tempPath);
|
||||
|
||||
//build an array of the unzipped files
|
||||
string[] files = Directory.GetFiles(tempPath);
|
||||
|
||||
foreach (string file in files)
|
||||
{
|
||||
FileInfo f = new FileInfo(file);
|
||||
//Check if the file exists already, if so delete it and then move the new file to the extract folder
|
||||
if (File.Exists(Path.Combine(extractPath, f.Name)))
|
||||
{
|
||||
File.Delete(Path.Combine(extractPath, f.Name));
|
||||
File.Move(f.FullName, Path.Combine(extractPath, f.Name));
|
||||
}
|
||||
else
|
||||
{
|
||||
File.Move(f.FullName, Path.Combine(extractPath, f.Name));
|
||||
}
|
||||
}
|
||||
//Delete the temporary directory.
|
||||
Directory.Delete(tempPath);
|
||||
return true;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private void timer1_Tick(object sender, EventArgs e)
|
||||
{
|
||||
timer1.Enabled = false;
|
||||
Update();
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user