5
5
using System . IO ;
6
6
using System . Linq ;
7
7
using System . Windows . Forms ;
8
+ using Microsoft . VisualBasic . FileIO ;
8
9
#region tab backup
9
10
class BackupDataListView : ListView {
10
- private ContextMenuStrip cMenu ;
11
+ private ContextMenuStrip clmnMenu ;
11
12
private BackupDataListViewItem selectedItem = null ;
12
13
private ColumnHeader clmnBackupTime ; // 'バックアップ日時' 列ヘッダ
13
14
private ColumnHeader clmnAffiliationWorldName ; // '所属ワールド名' 列ヘッダ
@@ -25,28 +26,32 @@ public BackupDataListView(World worldObj) {
25
26
Dock = DockStyle . Fill ;
26
27
Scrollable = false ;
27
28
Sorting = SortOrder . Descending ;
28
-
29
-
30
- cMenu = new ContextMenuStrip ( ) ;
29
+ clmnMenu = new ContextMenuStrip ( ) ;
31
30
32
31
#region contextmenu
33
32
34
- cMenu . Opening += new CancelEventHandler ( Menu_Opening ) ;
33
+ clmnMenu . Opening += new CancelEventHandler ( Menu_Opening ) ;
35
34
ToolStripMenuItem returnBackup = new ToolStripMenuItem ( ) {
36
35
Text = "このバックアップから復元する(&B)"
37
36
} ;
38
37
returnBackup . Click += new EventHandler ( ReturnBackup_Click ) ;
39
- cMenu . Items . Add ( returnBackup ) ;
38
+ clmnMenu . Items . Add ( returnBackup ) ;
40
39
41
40
ToolStripMenuItem openInExplorer = new ToolStripMenuItem ( ) {
42
41
Text = "エクスプローラーで開く(&X)"
43
42
} ;
44
-
45
43
openInExplorer . Click += new EventHandler ( OpenInExplorer_Click ) ;
46
44
if ( worldObj . IsAlive )
47
- cMenu . Items . Add ( openInExplorer ) ;
45
+ clmnMenu . Items . Add ( openInExplorer ) ;
46
+
47
+ ToolStripMenuItem deleteBackup = new ToolStripMenuItem ( ) {
48
+ Text = "このバックアップを削除する(&B)" ,
49
+ ForeColor = Color . Red ,
50
+ } ;
51
+ deleteBackup . Click += new EventHandler ( DeleteBackup_Click ) ;
52
+ clmnMenu . Items . Add ( deleteBackup ) ;
48
53
49
- this . ContextMenuStrip = cMenu ;
54
+ this . ContextMenuStrip = clmnMenu ;
50
55
#endregion
51
56
52
57
clmnBackupTime = new ColumnHeader ( ) { Text = "バックアップ日時" } ;
@@ -153,8 +158,28 @@ private void ReturnBackup_Click(object sender, EventArgs e) {
153
158
}
154
159
155
160
private void OpenInExplorer_Click ( object sender , EventArgs e ) {
156
- ContextMenuStrip menu = sender as ContextMenuStrip ;
157
- System . Diagnostics . Process . Start ( "EXPLORER.EXE" , Util . makePathToWorld ( selectedItem . SubItems [ 1 ] . Text , selectedItem . SubItems [ 2 ] . Text ) ) ;
161
+ System . Diagnostics . Process . Start ( "EXPLORER.EXE" , Util . MakePathToWorld ( selectedItem . SubItems [ 1 ] . Text , selectedItem . SubItems [ 2 ] . Text ) ) ;
162
+ }
163
+
164
+ private void DeleteBackup_Click ( object sender , EventArgs e ) {
165
+ DialogResult result = MessageBox . Show ( "このバックアップを削除しますか?" , "Minecraft Auto Backup" , MessageBoxButtons . YesNo ) ;
166
+ if ( result == DialogResult . Yes ) {
167
+ DateTime dt = DateTime . ParseExact ( selectedItem . SubItems [ 0 ] . Text , "yyyy-MM-dd HH:mm" , null ) ;
168
+ string fileName = dt . ToString ( "yyyyMMddHHmm" ) ;
169
+ string backupPath ;
170
+ if ( File . Exists ( $ "{ AppConfig . BackupPath } \\ { selectedItem . SubItems [ 2 ] . Text } \\ { selectedItem . World . WorldName } \\ { fileName } .zip") ) {
171
+ // バックアップがzipだった場合
172
+ backupPath = $ "{ AppConfig . BackupPath } \\ { selectedItem . SubItems [ 2 ] . Text } \\ { selectedItem . World . WorldName } \\ { fileName } .zip";
173
+ FileSystem . DeleteFile ( backupPath ) ;
174
+
175
+ }
176
+ else {
177
+ // バックアップがzipじゃなかった場合
178
+ backupPath = $ "{ AppConfig . BackupPath } \\ { selectedItem . SubItems [ 2 ] . Text } \\ { selectedItem . World . WorldName } \\ { fileName } ";
179
+ FileSystem . DeleteDirectory ( backupPath , UIOption . OnlyErrorDialogs , RecycleOption . DeletePermanently ) ;
180
+ }
181
+ this . Items . Remove ( selectedItem ) ;
182
+ }
158
183
}
159
184
160
185
}
0 commit comments