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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
using System;
using System.Collections.Generic;
using System.Text;
namespace Helper
{
public class FileSystem
{
private static string _operationDirNotExist = "Can not find the directory";
private static string _operationDirNotEmpty = "Directory is not empty";
private static string _operationSuccess = "success";
private static string _operationFailed = "failed";
public static void DeleteAllSubfolders(string directoryPath)
{
//find files in the current directory an delete them
foreach (string fileName in System.IO.Directory.GetFiles(directoryPath))
{
try
{
System.IO.File.Delete(fileName);
}
catch
{
//Some files produce an exception if they cannot be deleted
//throw Exception ex;
}
}
//find subdirectorys in the current directory an delete them recursiv
foreach (string directoryName in System.IO.Directory.GetDirectories(directoryPath))
{
DeleteAllSubfolders(directoryName);
try
{
//If no undeletable files are present the recursive search will be killed
System.IO.Directory.Delete(directoryName, true);
}
catch
{
//throw Exception ex;
}
}
}
public static string DeleteDirectory(string directoryPath, bool recursiv, bool deleteFiles)
{
string result = _operationFailed;
if (System.IO.Directory.Exists(directoryPath))
{
if (recursiv == false && deleteFiles == false)
{
System.IO.Directory.Delete(directoryPath, false);
if (System.IO.Directory.Exists(directoryPath))
{
result = _operationDirNotEmpty;
}
else
{
result = _operationSuccess;
}
}
if(recursiv == true && deleteFiles == false)
{
System.IO.Directory.Delete(directoryPath, true);
if (System.IO.Directory.Exists(directoryPath))
{
result = _operationDirNotEmpty;
}
else
{
result = _operationSuccess;
}
}
if (recursiv == true && deleteFiles == true)
{
System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(directoryPath);
DeleteAllSubfolders(directoryPath);
System.IO.Directory.Delete(directoryPath, true);
if (System.IO.Directory.Exists(directoryPath))
{
result = _operationDirNotEmpty;
}
else
{
result = _operationSuccess;
}
}
if (recursiv == false && deleteFiles == true)
{
//find files in the current directory and delete them
foreach (string fileName in System.IO.Directory.GetFiles(directoryPath))
{
try
{
System.IO.File.Delete(fileName);
}
catch
{
//Some files produce an exception if they cannot be deleted
//throw Exception ex;
}
}
System.IO.Directory.Delete(directoryPath, false);
if (System.IO.Directory.Exists(directoryPath))
{
result = _operationDirNotEmpty;
}
else
{
result = _operationSuccess;
}
}
}
else
{
result = _operationDirNotExist;
}
return result;
}
}
}
|