-
Notifications
You must be signed in to change notification settings - Fork 6
/
RecoverForm.cs
119 lines (100 loc) · 3.64 KB
/
RecoverForm.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using MyUpdate.Utils;
using MyUpdate.Entity;
using System.Threading;
namespace MyUpdate
{
public partial class RecoverForm : MyBaseForm
{
public RecoverForm()
{
InitializeComponent();
}
private void BackupForm_Load(object sender, EventArgs e)
{
List<string> list= GetBackupList();
for (int i = 0; i < list.Count; i++)
{
list[i] = list[i].Substring(list[i].LastIndexOf('\\')).Trim('\\').Replace(".rar", "");
}
listBox1.Items.AddRange(list.ToArray());
}
private void RecoverForm_FormClosing(object sender, FormClosingEventArgs e)
{
StartApp();
}
private void btnOption_Click(object sender, EventArgs e)
{
if (listBox1.SelectedIndex == -1)
{
MessageBox.Show("请选择相应的还原点");
return;
}
this.btnOption.Enabled = false;
this.btnOption.Text = "正在还原...";
string fileName = listBox1.SelectedItem.ToString();
string version = fileName.Substring(fileName.LastIndexOf('_')).Trim('_');
fileName = GetBackupList()[listBox1.SelectedIndex];
CloseApp();
#region 用Thread
//Thread t = new Thread(new ThreadStart(delegate()
//{
// #region thread method
// string path=AppParameter.MainPath.Trim();
// path=path.Substring(0,path.LastIndexOf('\\'));
// ZipHelper.UnZip(fileName, path);
// MessageBox.Show("还原完毕,程序已还原到" + version,"提示");
// AppParameter.Version = version;
// ConfigHelper.UpdateAppConfig("version", version);
// File.Delete(AppParameter.LocalUPdateConfig);
// if (this.InvokeRequired)
// {
// this.Invoke((Action)delegate() {
// this.btnOption.Enabled = true;
// this.btnOption.Text = "还原";
// });
// }
// #endregion
//}));
//t.Start();
#endregion
#region 用Action
Action callBack = new Action(delegate() {
string path = AppParameter.MainPath.Trim();
path = path.Substring(0, path.LastIndexOf('\\'));
ZipHelper.UnZip(fileName, path);
MessageBox.Show("还原完毕,程序已还原到" + version, "提示");
AppParameter.Version = version;
ConfigHelper.UpdateAppConfig("version", version);
File.Delete(AppParameter.LocalUPdateConfig);
if (this.InvokeRequired)
{
this.Invoke((Action)delegate()
{
this.btnOption.Enabled = true;
this.btnOption.Text = "还原";
});
}
});
callBack.BeginInvoke(null, null);
#endregion
}
/// <summary>
/// 获取备份文件列表
/// </summary>
/// <returns></returns>
public static List<string> GetBackupList()
{
List<string> result = Directory.GetFiles(AppParameter.BackupPath, "*.rar").ToList();
return result;
}
}
}