获取当前文件夹下的所有空文件夹路径信息
1
using System;
2
using System.Drawing;
3
using System.Collections;
4
using System.ComponentModel;
5
using System.Windows.Forms;
6
using System.Data;
7
using System.IO;
8
9
namespace 删除空文件夹
10
{
11
/// <summary>
12
/// Form1 的摘要说明。
13
/// </summary>
14
public class Form1 : System.Windows.Forms.Form
15
{
16
private System.Windows.Forms.Button button1;
17
private System.Windows.Forms.RichTextBox richTextBox1;
18
/// <summary>
19
/// 必需的设计器变量。
20
/// </summary>
21
private System.ComponentModel.Container components = null;
22
23
public Form1()
24
{
25
//
26
// Windows 窗体设计器支持所必需的
27
//
28
InitializeComponent();
29
30
//
31
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
32
//
33
}
34
35
/// <summary>
36
/// 清理所有正在使用的资源。
37
/// </summary>
38
protected override void Dispose( bool disposing )
39
{
40
if( disposing )
41
{
42
if (components != null)
43
{
44
components.Dispose();
45
}
46
}
47
base.Dispose( disposing );
48
}
49
50
Windows 窗体设计器生成的代码
94
95
/// <summary>
96
/// 应用程序的主入口点。
97
/// </summary>
98
[STAThread]
99
static void Main()
100
{
101
Application.Run(new Form1());
102
}
103
//遍历当前文件夹下的空文件夹(包括它的下一级文件夹)
104
private void SearchDirectoryEmptyFolder(string targetDirectory )
105
{
106
if (Directory.Exists(targetDirectory))
107
{
108
DirectoryInfo di = new DirectoryInfo(targetDirectory);
109
if( DirSize(di)== 0)
110
{
111
112
// ' Empty folder
113
w1++;
114
this.richTextBox1.Text +=w1.ToString()+ ("Folder " + targetDirectory +" is empty\n") ;
115
}
116
else
117
{
118
//' Recurse subdirectories of this directory
119
//string subdirectory ="";
120
string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory) ;
121
foreach( string subdirectory in subdirectoryEntries )
122
{
123
//this.richTextBox1.Text +=("Folder is " + subdirectory+"\n") ;
124
SearchDirectoryEmptyFolder(subdirectory) ;
125
}
126
}
127
}
128
}
129
//遍历当前文件夹下的所有文件信息(包括它的下一级文件夹)
130
public static void DirSearch(DirectoryInfo d)
131
{
132
//get the current directory files information
133
FileInfo[] files = d.GetFiles();
134
Console.WriteLine("Total number of txt files:{0}",files.Length);
135
foreach(FileInfo f in files)
136
{
137
Console.WriteLine("Name is : {0}", f.Name);
138
Console.WriteLine("Length of the file is : {0}", f.Length);
139
Console.WriteLine("Creation time is : {0}", f.CreationTime);
140
Console.WriteLine("the path of the file: {0}",f.FullName);
141
Console.WriteLine("Attributes of the file are : {0}",
142
f.Attributes.ToString());
143
}
144
145
// recursion transfer get the next directory information
146
DirectoryInfo[] dis = d.GetDirectories();
147
foreach (DirectoryInfo di in dis)
148
{
149
DirSearch(di);
150
}
151
}
152
153
154
int w1=0;
155
//遍历当前文件夹下的所有文件夹名(包括它的下一级文件夹))
156
private void SearchDirectoryFolder(string targetDirectory )
157
{
158
if (Directory.Exists(targetDirectory))
159
{
160
if( Directory.GetFileSystemEntries(targetDirectory).Length == 0)
161
{
162
//Empty folder
163
w1++;
164
this.richTextBox1.Text +=w1.ToString()+ ("Folder " + targetDirectory +" is empty\n") ;
165
}
166
else
167
{
168
//' Recurse subdirectories of this directory
169
string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory) ;
170
foreach( string subdirectory in subdirectoryEntries )
171
{
172
//this.richTextBox1.Text +=("Folder is " + subdirectory+"\n") ;
173
SearchDirectoryFolder(subdirectory) ;
174
}
175
}
176
}
177
}
178
179
private void button1_Click(object sender, System.EventArgs e)
180
{
181
this.richTextBox1.Text ="";
182
183
//SearchDirectoryFolder(@"c:\CarArchives");
184
//DirectoryInfo di = new DirectoryInfo(@"c:\CarArchives");
185
//long i=DirSize(di)/1024;
186
//this.richTextBox1.Text = (i.ToString()+"KB" ) ;
187
//SearchDirectoryEmptyFolder(@"c:\CarArchives");
188
//ProcessDirectory(@"c:\CarArchives");
189
PrintFileSystemEntries(@"c:\CarArchives\2005");
190
}
191
192
193
194
//计算当前文件夹的大小(包括它的下一级文件夹)
195
public long DirSize(DirectoryInfo d)
196
{
197
long Size = 0;
198
// Add file sizes.
199
FileInfo[] fis = d.GetFiles();
200
foreach (FileInfo fi in fis)
201
{
202
Size +=fi.Length; ;
203
}
204
// Add subdirectory sizes.
205
DirectoryInfo[] dis = d.GetDirectories();
206
foreach (DirectoryInfo di in dis)
207
{
208
Size +=DirSize(di); ;
209
}
210
return(Size);
211
}
212
213
//获取当前文件夹中的所有文件和文件夹(不包括它的下一级目录)
214
void PrintFileSystemEntries(string path)
215
{
216
217
try
218
{
219
// Obtain the file system entries in the directory path.
220
string[] directoryEntries =
221
System.IO.Directory.GetFileSystemEntries(path);
222
223
foreach (string str in directoryEntries)
224
{
225
//System.Console.WriteLine(str);
226
this.richTextBox1.Text+=str+"\n" ;
227
}
228
}
229
catch (ArgumentNullException)
230
{
231
System.Console.WriteLine("Path is a null reference.");
232
}
233
catch (System.Security.SecurityException)
234
{
235
System.Console.WriteLine("The caller does not have the " +
236
"required permission.");
237
}
238
catch (ArgumentException)
239
{
240
System.Console.WriteLine("Path is an empty string, " +
241
"contains only white spaces, " +
242
"or contains invalid characters.");
243
}
244
catch (System.IO.DirectoryNotFoundException)
245
{
246
System.Console.WriteLine("The path encapsulated in the " +
247
"Directory object does not exist.");
248
}
249
}
250
251
//获取当前文件夹下的所有文件和文件夹(不包括它的下一级目录)
252
public void ProcessDirectory(string targetDirectory)
253
{
254
// Process the list of files found in the directory.
255
string [] fileEntries = Directory.GetFiles(targetDirectory);
256
foreach(string fileName in fileEntries)
257
this.richTextBox1.Text +=fileName+"\n";
258
// Recurse into subdirectories of this directory.
259
string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
260
foreach(string subdirectory in subdirectoryEntries)
261
{
262
this.richTextBox1.Text += subdirectory+"\n"+"**********************************\n\n" ;
263
ProcessDirectory(subdirectory);
264
}
265
266
267
}
268
269
}
270
271
272
}
273
using System;2
using System.Drawing;3
using System.Collections;4
using System.ComponentModel;5
using System.Windows.Forms;6
using System.Data;7
using System.IO;8

9
namespace 删除空文件夹10
{11
/// <summary>12
/// Form1 的摘要说明。13
/// </summary>14
public class Form1 : System.Windows.Forms.Form15
{16
private System.Windows.Forms.Button button1;17
private System.Windows.Forms.RichTextBox richTextBox1;18
/// <summary>19
/// 必需的设计器变量。20
/// </summary>21
private System.ComponentModel.Container components = null;22

23
public Form1()24
{25
//26
// Windows 窗体设计器支持所必需的27
//28
InitializeComponent();29

30
//31
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码32
//33
}34

35
/// <summary>36
/// 清理所有正在使用的资源。37
/// </summary>38
protected override void Dispose( bool disposing )39
{40
if( disposing )41
{42
if (components != null) 43
{44
components.Dispose();45
}46
}47
base.Dispose( disposing );48
}49

50
Windows 窗体设计器生成的代码94

95
/// <summary>96
/// 应用程序的主入口点。97
/// </summary>98
[STAThread]99
static void Main() 100
{101
Application.Run(new Form1());102
}103
//遍历当前文件夹下的空文件夹(包括它的下一级文件夹)104
private void SearchDirectoryEmptyFolder(string targetDirectory ) 105
{106
if (Directory.Exists(targetDirectory))107
{108
DirectoryInfo di = new DirectoryInfo(targetDirectory);109
if( DirSize(di)== 0)110
{111

112
// ' Empty folder 113
w1++;114
this.richTextBox1.Text +=w1.ToString()+ ("Folder " + targetDirectory +" is empty\n") ;115
}116
else117
{118
//' Recurse subdirectories of this directory 119
//string subdirectory ="";120
string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory) ;121
foreach( string subdirectory in subdirectoryEntries )122
{123
//this.richTextBox1.Text +=("Folder is " + subdirectory+"\n") ;124
SearchDirectoryEmptyFolder(subdirectory) ;125
}126
}127
}128
}129
//遍历当前文件夹下的所有文件信息(包括它的下一级文件夹)130
public static void DirSearch(DirectoryInfo d) 131
{132
//get the current directory files information133
FileInfo[] files = d.GetFiles();134
Console.WriteLine("Total number of txt files:{0}",files.Length);135
foreach(FileInfo f in files)136
{137
Console.WriteLine("Name is : {0}", f.Name);138
Console.WriteLine("Length of the file is : {0}", f.Length);139
Console.WriteLine("Creation time is : {0}", f.CreationTime);140
Console.WriteLine("the path of the file: {0}",f.FullName);141
Console.WriteLine("Attributes of the file are : {0}",142
f.Attributes.ToString());143
}144
145
// recursion transfer get the next directory information146
DirectoryInfo[] dis = d.GetDirectories();147
foreach (DirectoryInfo di in dis)148
{149
DirSearch(di);150
}151
}152

153

154
int w1=0;155
//遍历当前文件夹下的所有文件夹名(包括它的下一级文件夹))156
private void SearchDirectoryFolder(string targetDirectory ) 157
{158
if (Directory.Exists(targetDirectory))159
{160
if( Directory.GetFileSystemEntries(targetDirectory).Length == 0)161
{162
//Empty folder 163
w1++;164
this.richTextBox1.Text +=w1.ToString()+ ("Folder " + targetDirectory +" is empty\n") ;165
}166
else167
{168
//' Recurse subdirectories of this directory 169
string[] subdirectoryEntries = Directory.GetDirectories(targetDirectory) ;170
foreach( string subdirectory in subdirectoryEntries )171
{172
//this.richTextBox1.Text +=("Folder is " + subdirectory+"\n") ;173
SearchDirectoryFolder(subdirectory) ;174
}175
}176
}177
}178

179
private void button1_Click(object sender, System.EventArgs e)180
{181
this.richTextBox1.Text =""; 182
183
//SearchDirectoryFolder(@"c:\CarArchives");184
//DirectoryInfo di = new DirectoryInfo(@"c:\CarArchives");185
//long i=DirSize(di)/1024;186
//this.richTextBox1.Text = (i.ToString()+"KB" ) ;187
//SearchDirectoryEmptyFolder(@"c:\CarArchives");188
//ProcessDirectory(@"c:\CarArchives");189
PrintFileSystemEntries(@"c:\CarArchives\2005");190
}191

192
193

194
//计算当前文件夹的大小(包括它的下一级文件夹)195
public long DirSize(DirectoryInfo d) 196
{ 197
long Size = 0; 198
// Add file sizes.199
FileInfo[] fis = d.GetFiles();200
foreach (FileInfo fi in fis) 201
{ 202
Size +=fi.Length; ;203
}204
// Add subdirectory sizes.205
DirectoryInfo[] dis = d.GetDirectories();206
foreach (DirectoryInfo di in dis) 207
{208
Size +=DirSize(di); ;209
}210
return(Size); 211
}212

213
//获取当前文件夹中的所有文件和文件夹(不包括它的下一级目录)214
void PrintFileSystemEntries(string path) 215
{216
217
try 218
{219
// Obtain the file system entries in the directory path.220
string[] directoryEntries =221
System.IO.Directory.GetFileSystemEntries(path); 222

223
foreach (string str in directoryEntries) 224
{225
//System.Console.WriteLine(str);226
this.richTextBox1.Text+=str+"\n" ;227
}228
}229
catch (ArgumentNullException) 230
{231
System.Console.WriteLine("Path is a null reference.");232
}233
catch (System.Security.SecurityException) 234
{235
System.Console.WriteLine("The caller does not have the " +236
"required permission.");237
}238
catch (ArgumentException) 239
{240
System.Console.WriteLine("Path is an empty string, " +241
"contains only white spaces, " + 242
"or contains invalid characters.");243
}244
catch (System.IO.DirectoryNotFoundException) 245
{246
System.Console.WriteLine("The path encapsulated in the " + 247
"Directory object does not exist.");248
}249
}250

251
//获取当前文件夹下的所有文件和文件夹(不包括它的下一级目录)252
public void ProcessDirectory(string targetDirectory) 253
{254
// Process the list of files found in the directory.255
string [] fileEntries = Directory.GetFiles(targetDirectory);256
foreach(string fileName in fileEntries)257
this.richTextBox1.Text +=fileName+"\n";258
// Recurse into subdirectories of this directory.259
string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);260
foreach(string subdirectory in subdirectoryEntries)261
{262
this.richTextBox1.Text += subdirectory+"\n"+"**********************************\n\n" ;263
ProcessDirectory(subdirectory);264
}265

266
267
}268

269
}270

271

272
}273



浙公网安备 33010602011771号