OSDN Git Service

ブロックサイズを増やした
[completeeraser/CompleteEraser.git] / CompleteEraser / ShrredFiles.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.IO;\r
4 \r
5 namespace CompleteEraser\r
6 {\r
7     class ShrredFiles : IOperation\r
8     {\r
9         public event ProgressingEventHandler Progressing;\r
10         public event ProgressedEventHandler Progressed;\r
11 \r
12         public void Execute(IEnumerable<string> files)\r
13         {\r
14             foreach (string file in files)\r
15             {\r
16                 Progressing(this,new ProgressingEventArgs(file));\r
17 \r
18             RETRY:\r
19                 ProgressedEventArgs e = new ProgressedEventArgs(file,null);\r
20 \r
21                 try\r
22                 {\r
23                     FileBreaker.BreakFileOrFolder(file);\r
24                 }\r
25                 catch (UnauthorizedAccessException uae)\r
26                 {\r
27                     e.ex = uae;\r
28                 }\r
29                 catch (IOException ie)\r
30                 {\r
31                     e.ex = ie;\r
32                 }\r
33                 Progressed(this, e);\r
34                 if (e.retry)\r
35                     goto RETRY;\r
36                 if (e.breaked)\r
37                     break;\r
38             }\r
39         }\r
40     }\r
41 }\r