Backups.cs 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11. using DevExpress.Mvvm.Native;
  12. using DevExpress.XtraEditors;
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Linq;
  16. using System.Text;
  17. using System.IO;//获取文件信息
  18. using System.Runtime.InteropServices;
  19. namespace NewArchivesCenter
  20. {
  21. public partial class Backups : DevExpress.XtraEditors.XtraUserControl
  22. {
  23. public Backups()
  24. {
  25. InitializeComponent();
  26. listView1.View = View.Details;
  27. listView1.Columns.Add("备份时间", 215);
  28. listView1.Columns.Add("大小(MB)", 65);
  29. listView1.Columns.Add("占比(%)", 60);
  30. listView1.Items.Clear();
  31. DirectoryInfo dirInfo = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  32. DirectoryInfo[] subDirs = dirInfo.GetDirectories();
  33. long totalSize = subDirs.Sum(d => GetDirectorySize(d));
  34. foreach (DirectoryInfo dir in subDirs)
  35. {
  36. long dirSize = GetDirectorySize(dir);
  37. double dirSizeMB = dirSize / (1024.0 * 1024.0);
  38. double percentage = totalSize > 0 ? (dirSize * 100.0 / totalSize) : 0;
  39. ListViewItem item = new ListViewItem(new string[]
  40. {
  41. dir.Name,
  42. dirSizeMB.ToString("F2"),
  43. percentage.ToString("F2")
  44. });
  45. listView1.Items.Add(item);
  46. }
  47. if (listView1.Items.Count > 0) button4.Enabled = true;
  48. else button4.Enabled = false;
  49. long Sz = GDL(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  50. long SSz = Sz / 1024;
  51. long SSSz = SSz / 1024;
  52. label2.Text = "全部备份文件大小:" + SSSz + "MB";
  53. }
  54. private long GetDirectorySize(DirectoryInfo directoryInfo)
  55. {
  56. long size = 0;
  57. FileInfo[] files = directoryInfo.GetFiles();
  58. size += files.Sum(file => file.Length);
  59. DirectoryInfo[] subDirs = directoryInfo.GetDirectories();
  60. size += subDirs.Sum(dir => GetDirectorySize(dir));
  61. return size;
  62. }
  63. private static long GDL(string dirPath)
  64. {
  65. long len = 0;
  66. DirectoryInfo dir = new DirectoryInfo(dirPath);
  67. foreach (FileInfo file in dir.GetFiles())
  68. {
  69. len += file.Length;
  70. }
  71. DirectoryInfo[] directoryInfos = dir.GetDirectories();
  72. if (directoryInfos.Length > 0)
  73. {
  74. for (int i = 0; i < directoryInfos.Length; i++)
  75. {
  76. len +=
  77. GDL(directoryInfos[i].FullName);
  78. }
  79. }
  80. return len;
  81. }
  82. private void button1_Click(object sender, EventArgs e)
  83. {
  84. }
  85. string Password = "fbHQb7L9ODdO9pyPB4cDaMtiW7AgYKJLmQb7FewTiJZhyQwzCJucVf4scvQt7R6b";
  86. private void button2_Click(object sender, EventArgs e)
  87. {
  88. string T = DateTime.Now.ToString("yyyy'.'MM'.'dd'T'HH'.'mm'.'ss'.'fffffffzz");
  89. SevenZipHelper.CreateEncryptedZip(Path.GetTempPath() + @"ArchivesCenter\Data\", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted", Password);
  90. string folderToDelete = Path.GetTempPath() + @"ArchivesCenter";
  91. DeleteFolderWithAdminRights.DeleteFolder(folderToDelete);
  92. Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T);
  93. if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted"))
  94. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T + @"\Users.encrypted");
  95. if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted"))
  96. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T + @"\Data.encrypted");
  97. File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted");
  98. File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted");
  99. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + listView1.SelectedItems[0].Text + @"\Users.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted");
  100. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + listView1.SelectedItems[0].Text + @"\Data.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted");
  101. listView1.Items.Clear();
  102. DirectoryInfo dirInfo = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  103. DirectoryInfo[] subDirs = dirInfo.GetDirectories();
  104. long totalSize = subDirs.Sum(d => GetDirectorySize(d));
  105. foreach (DirectoryInfo dir in subDirs)
  106. {
  107. long dirSize = GetDirectorySize(dir);
  108. double dirSizeMB = dirSize / (1024.0 * 1024.0);
  109. double percentage = totalSize > 0 ? (dirSize * 100.0 / totalSize) : 0;
  110. ListViewItem item = new ListViewItem(new string[]
  111. {
  112. dir.Name,
  113. dirSizeMB.ToString("F2"),
  114. percentage.ToString("F2")
  115. });
  116. listView1.Items.Add(item);
  117. }
  118. if (listView1.Items.Count > 0) button4.Enabled = true;
  119. else button4.Enabled = false;
  120. long Sz = GDL(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  121. long SSz = Sz / 1024;
  122. long SSSz = SSz / 1024;
  123. label2.Text = "全部备份文件大小:" + SSSz + "MB";
  124. MessageBox.Show("还原操作已成功执行,立即重启", "Archives Center", MessageBoxButtons.OK, MessageBoxIcon.Information);
  125. DeleteFolderWithAdminRights.DeleteFolder(Path.GetTempPath() + @"ArchivesCenter");
  126. Environment.Exit(0);
  127. }
  128. private void button3_Click(object sender, EventArgs e)
  129. {
  130. if (MessageBox.Show("此操作不可逆,确认删除此备份?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
  131. {
  132. if (MessageBox.Show("此操作不可逆,确认删除此备份?\n这是最后一次确认", "二次删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)
  133. {
  134. Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + listView1.SelectedItems[0].Text, true);
  135. listView1.Items.Clear();
  136. DirectoryInfo dirInfo = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  137. DirectoryInfo[] subDirs = dirInfo.GetDirectories();
  138. long totalSize = subDirs.Sum(d => GetDirectorySize(d));
  139. foreach (DirectoryInfo dir in subDirs)
  140. {
  141. long dirSize = GetDirectorySize(dir);
  142. double dirSizeMB = dirSize / (1024.0 * 1024.0);
  143. double percentage = totalSize > 0 ? (dirSize * 100.0 / totalSize) : 0;
  144. ListViewItem item = new ListViewItem(new string[]
  145. {
  146. dir.Name,
  147. dirSizeMB.ToString("F2"),
  148. percentage.ToString("F2")
  149. });
  150. listView1.Items.Add(item);
  151. }
  152. if (listView1.Items.Count > 0) button4.Enabled = true;
  153. else button4.Enabled = false;
  154. button2.Enabled = false;
  155. button3.Enabled = false;
  156. }
  157. }
  158. long Sz = GDL(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  159. long SSz = Sz / 1024;
  160. long SSSz = SSz / 1024;
  161. label2.Text = "全部备份文件大小:" + SSSz + "MB";
  162. }
  163. private void button4_Click(object sender, EventArgs e)
  164. {
  165. if (MessageBox.Show("此操作不可逆,确认删除全部备份?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
  166. {
  167. if (MessageBox.Show("此操作不可逆,确认删除全部备份?\n这是最后一次确认", "二次删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)
  168. {
  169. Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\", true);
  170. Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  171. listView1.Items.Clear();
  172. DirectoryInfo dirInfo = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  173. DirectoryInfo[] subDirs = dirInfo.GetDirectories();
  174. long totalSize = subDirs.Sum(d => GetDirectorySize(d));
  175. foreach (DirectoryInfo dir in subDirs)
  176. {
  177. long dirSize = GetDirectorySize(dir);
  178. double dirSizeMB = dirSize / (1024.0 * 1024.0);
  179. double percentage = totalSize > 0 ? (dirSize * 100.0 / totalSize) : 0;
  180. ListViewItem item = new ListViewItem(new string[]
  181. {
  182. dir.Name,
  183. dirSizeMB.ToString("F2"),
  184. percentage.ToString("F2")
  185. });
  186. listView1.Items.Add(item);
  187. }
  188. button2.Enabled = false;
  189. button3.Enabled = false;
  190. button4.Enabled = false;
  191. }
  192. }
  193. long Sz = GDL(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  194. long SSz = Sz / 1024;
  195. long SSSz = SSz / 1024;
  196. label2.Text = "全部备份文件大小:" + SSSz + "MB";
  197. }
  198. private void listView1_SelectedIndexChanged(object sender, EventArgs e)
  199. {
  200. if (listView1.SelectedItems.Count > 0)
  201. {
  202. button2.Enabled = true;
  203. button3.Enabled = true;
  204. }
  205. else
  206. {
  207. button2.Enabled = false;
  208. button3.Enabled = false;
  209. }
  210. }
  211. private void button1_Click_1(object sender, EventArgs e)
  212. {
  213. string T = DateTime.Now.ToString("yyyy'.'MM'.'dd'T'HH'.'mm'.'ss'.'fffffffzz");
  214. Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T);
  215. if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted"))
  216. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T + @"\Users.encrypted");
  217. if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted"))
  218. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T + @"\Data.encrypted");
  219. listView1.Items.Clear();
  220. DirectoryInfo dirInfo = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  221. DirectoryInfo[] subDirs = dirInfo.GetDirectories();
  222. long totalSize = subDirs.Sum(d => GetDirectorySize(d));
  223. foreach (DirectoryInfo dir in subDirs)
  224. {
  225. long dirSize = GetDirectorySize(dir);
  226. double dirSizeMB = dirSize / (1024.0 * 1024.0);
  227. double percentage = totalSize > 0 ? (dirSize * 100.0 / totalSize) : 0;
  228. ListViewItem item = new ListViewItem(new string[]
  229. {
  230. dir.Name,
  231. dirSizeMB.ToString("F2"),
  232. percentage.ToString("F2")
  233. });
  234. listView1.Items.Add(item);
  235. }
  236. button2.Enabled = false;
  237. button3.Enabled = false;
  238. button4.Enabled = true;
  239. long Sz = GDL(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  240. long SSz = Sz / 1024;
  241. long SSSz = SSz / 1024;
  242. label2.Text = "全部备份文件大小:" + SSSz + "MB";
  243. }
  244. private void button2_Click_1(object sender, EventArgs e)
  245. {
  246. string T = DateTime.Now.ToString("yyyy'.'MM'.'dd'T'HH'.'mm'.'ss'.'fffffffzz");
  247. SevenZipHelper.CreateEncryptedZip(Path.GetTempPath() + @"ArchivesCenter\Data\", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted", Password);
  248. string folderToDelete = Path.GetTempPath() + @"ArchivesCenter";
  249. DeleteFolderWithAdminRights.DeleteFolder(folderToDelete);
  250. Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T);
  251. if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted"))
  252. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T + @"\Users.encrypted");
  253. if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted"))
  254. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + T + @"\Data.encrypted");
  255. File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted");
  256. File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted");
  257. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + listView1.SelectedItems[0].Text + @"\Users.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Users.encrypted");
  258. File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + listView1.SelectedItems[0].Text + @"\Data.encrypted", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Data.encrypted");
  259. listView1.Items.Clear();
  260. DirectoryInfo dirInfo = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  261. DirectoryInfo[] subDirs = dirInfo.GetDirectories();
  262. long totalSize = subDirs.Sum(d => GetDirectorySize(d));
  263. foreach (DirectoryInfo dir in subDirs)
  264. {
  265. long dirSize = GetDirectorySize(dir);
  266. double dirSizeMB = dirSize / (1024.0 * 1024.0);
  267. double percentage = totalSize > 0 ? (dirSize * 100.0 / totalSize) : 0;
  268. ListViewItem item = new ListViewItem(new string[]
  269. {
  270. dir.Name,
  271. dirSizeMB.ToString("F2"),
  272. percentage.ToString("F2")
  273. });
  274. listView1.Items.Add(item);
  275. }
  276. if (listView1.Items.Count > 0) button4.Enabled = true;
  277. else button4.Enabled = false;
  278. long Sz = GDL(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  279. long SSz = Sz / 1024;
  280. long SSSz = SSz / 1024;
  281. label2.Text = "全部备份文件大小:" + SSSz + "MB";
  282. MessageBox.Show("还原操作已成功执行,立即重启", "Archives Center", MessageBoxButtons.OK, MessageBoxIcon.Information);
  283. DeleteFolderWithAdminRights.DeleteFolder(Path.GetTempPath() + @"ArchivesCenter");
  284. Environment.Exit(0);
  285. }
  286. private void button3_Click_1(object sender, EventArgs e)
  287. {
  288. if (MessageBox.Show("此操作不可逆,确认删除此备份?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
  289. {
  290. if (MessageBox.Show("此操作不可逆,确认删除此备份?\n这是最后一次确认", "二次删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)
  291. {
  292. Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\" + listView1.SelectedItems[0].Text, true);
  293. listView1.Items.Clear();
  294. DirectoryInfo dirInfo = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  295. DirectoryInfo[] subDirs = dirInfo.GetDirectories();
  296. long totalSize = subDirs.Sum(d => GetDirectorySize(d));
  297. foreach (DirectoryInfo dir in subDirs)
  298. {
  299. long dirSize = GetDirectorySize(dir);
  300. double dirSizeMB = dirSize / (1024.0 * 1024.0);
  301. double percentage = totalSize > 0 ? (dirSize * 100.0 / totalSize) : 0;
  302. ListViewItem item = new ListViewItem(new string[]
  303. {
  304. dir.Name,
  305. dirSizeMB.ToString("F2"),
  306. percentage.ToString("F2")
  307. });
  308. listView1.Items.Add(item);
  309. }
  310. if (listView1.Items.Count > 0) button4.Enabled = true;
  311. else button4.Enabled = false;
  312. button2.Enabled = false;
  313. button3.Enabled = false;
  314. }
  315. }
  316. long Sz = GDL(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  317. long SSz = Sz / 1024;
  318. long SSSz = SSz / 1024;
  319. label2.Text = "全部备份文件大小:" + SSSz + "MB";
  320. }
  321. private void button4_Click_1(object sender, EventArgs e)
  322. {
  323. if (MessageBox.Show("此操作不可逆,确认删除全部备份?", "删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
  324. {
  325. if (MessageBox.Show("此操作不可逆,确认删除全部备份?\n这是最后一次确认", "二次删除确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.OK)
  326. {
  327. Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\", true);
  328. Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  329. listView1.Items.Clear();
  330. DirectoryInfo dirInfo = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  331. DirectoryInfo[] subDirs = dirInfo.GetDirectories();
  332. long totalSize = subDirs.Sum(d => GetDirectorySize(d));
  333. foreach (DirectoryInfo dir in subDirs)
  334. {
  335. long dirSize = GetDirectorySize(dir);
  336. double dirSizeMB = dirSize / (1024.0 * 1024.0);
  337. double percentage = totalSize > 0 ? (dirSize * 100.0 / totalSize) : 0;
  338. ListViewItem item = new ListViewItem(new string[]
  339. {
  340. dir.Name,
  341. dirSizeMB.ToString("F2"),
  342. percentage.ToString("F2")
  343. });
  344. listView1.Items.Add(item);
  345. }
  346. button2.Enabled = false;
  347. button3.Enabled = false;
  348. button4.Enabled = false;
  349. }
  350. }
  351. long Sz = GDL(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\ArchivesCenter\Backups\" + Properties.Settings.Default.current_user + @"\");
  352. long SSz = Sz / 1024;
  353. long SSSz = SSz / 1024;
  354. label2.Text = "全部备份文件大小:" + SSSz + "MB";
  355. }
  356. }
  357. }