Asp.net(C#)對檔案操作的方法(讀取,刪除,批量拷貝,刪除...)
1 using System.Data;
2 using System.Configuration;
3 using System.Web;
4 using System.Web.Security;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7 using System.Web.UI.WebControls.WebParts;
8 using System.Web.UI.HtmlControls;
9 using System.Text;
10 using System.IO;
11
12 namespace EC
13 {
14 /**////
15 /// FileObj 的摘要說明
16 ///
17 public class FileObj
18 {
19 建構函式#region 建構函式
20 private bool _alreadyDispose = false;
21 public FileObj()
22 {
23 //
24 // TODO: 在此處新增建構函式邏輯
25 //
26 }
27 ~FileObj()
28 {
29 Dispose(); ;
30 }
31
32 protected virtual void Dispose(bool isDisposing)
33 {
34 if (_alreadyDispose) return;
35 //if (isDisposing)
36 //{
37 // if (xml != null)
38 // {
39 // xml = null;
40 // }
41 //}
42 _alreadyDispose = true;
43 }
44 #endregion
45
46 IDisposable 成員#region IDisposable 成員
47
48 public void Dispose()
49 {
50 Dispose(true);
51 GC.SuppressFinalize(this);
52 }
53
54 #endregion
55
56 取得檔案字尾名#region 取得檔案字尾名
57 /**//****************************************
58 * 函式名稱:GetPostfixStr
59 * 功能說明:取得檔案字尾名
60 * 參 數:filename:檔名稱
61 * 呼叫示列:
62 * string filename = "aaa.aspx";
63 * string s = EC.FileObj.GetPostfixStr(filename);
64 *****************************************/
65 /**////
66 /// 取字尾名
67 ///
68 /// 檔名
69 /// .gif|.html格式
70 public static string GetPostfixStr(string filename)
71 {
72 int start = filename.LastIndexOf(".");
73 int length = filename.Length;
74 string postfix = filename.Substring(start, length - start);
75 return postfix;
76 }
77 #endregion
78
79 寫檔案#region 寫檔案
80 /**//****************************************
81 * 函式名稱:WriteFile
82 * 功能說明:當檔案不存時,則建立檔案,並追加檔案
83 * 參 數:Path:檔案路徑,Strings:文字內容
84 * 呼叫示列:
85 * string Path = Server.MapPath("Default2.aspx");
86 * string Strings = "這是我寫的內容啊";
87 * EC.FileObj.WriteFile(Path,Strings);
88 *****************************************/
89 /**////
90 /// 寫檔案
91 ///
92 /// 檔案路徑
93 /// 檔案內容
94 public static void WriteFile(string Path, string Strings)
95 {
96
97 if (!System.IO.File.Exists(Path))
98 {
99 //Directory.CreateDirectory(Path);
100
101 System.IO.FileStream f = System.IO.File.Create(Path);
102 f.Close();
103 f.Dispose();
104 }
105 System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, true, System.Text.Encoding.UTF8);
106 f2.WriteLine(Strings);
107 f2.Close();
108 f2.Dispose();
109
110
111 }
112 #endregion
113
114 讀檔案#region 讀檔案
115 /**//****************************************
116 * 函式名稱:ReadFile
117 * 功能說明:讀取文字內容
118 * 參 數:Path:檔案路徑
119 * 呼叫示列:
120 * string Path = Server.MapPath("Default2.aspx");
121 * string s = EC.FileObj.ReadFile(Path);
122 *****************************************/
123 /**////
124 /// 讀檔案
125 ///
126 /// 檔案路徑
127 ///
128 public static string ReadFile(string Path)
129 {
130 string s = "";
131 if (!System.IO.File.Exists(Path))
132 s = "不存在相應的目錄";
133 else
134 {
135 StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("gb2312"));
136 s = f2.ReadToEnd();
137 f2.Close();
138 f2.Dispose();
139 }
140
141 return s;
142 }
143 #endregion
144
145 追加檔案#region 追加檔案
146 /**//****************************************
147 * 函式名稱:FileAdd
148 * 功能說明:追加檔案內容
149 * 參 數:Path:檔案路徑,strings:內容
150 * 呼叫示列:
151 * string Path = Server.MapPath("Default2.aspx");
152 * string Strings = "新追加內容";
153 * EC.FileObj.FileAdd(Path, Strings);
154 *****************************************/
155 /**////
156 /// 追加檔案
157 ///
158 /// 檔案路徑
159 /// 內容
160 public static void FileAdd(string Path, string strings)
161 {
162 StreamWriter sw = File.AppendText(Path);
163 sw.Write(strings);
164 sw.Flush();
165 sw.Close();
166 sw.Dispose();
167 }
168 #endregion
169
170 拷貝檔案#region 拷貝檔案
171 /**//****************************************
172 * 函式名稱:FileCoppy
173 * 功能說明:拷貝檔案
174 * 參 數:OrignFile:原始檔案,NewFile:新檔案路徑
175 * 呼叫示列:
176 * string OrignFile = Server.MapPath("Default2.aspx");
177 * string NewFile = Server.MapPath("Default3.aspx");
178 * EC.FileObj.FileCoppy(OrignFile, NewFile);
179 *****************************************/
180 /**////
181 /// 拷貝檔案
182 ///
183 /// 原始檔案
184 /// 新檔案路徑
185 public static void FileCoppy(string OrignFile, string NewFile)
186 {
187 File.Copy(OrignFile, NewFile, true);
188 }
189
190 #endregion
191
192 刪除檔案#region 刪除檔案
193 /**//****************************************
194 * 函式名稱:FileDel
195 * 功能說明:刪除檔案
196 * 參 數:Path:檔案路徑
197 * 呼叫示列:
198 * string Path = Server.MapPath("Default3.aspx");
199 * EC.FileObj.FileDel(Path);
200 *****************************************/
201 /**////
202 /// 刪除檔案
203 ///
204 /// 路徑
205 public static void FileDel(string Path)
206 {
207 File.Delete(Path);
208 }
209 #endregion
210
211 移動檔案#region 移動檔案
212 /**//****************************************
213 * 函式名稱:FileMove
214 * 功能說明:移動檔案
215 * 參 數:OrignFile:原始路徑,NewFile:新檔案路徑
216 * 呼叫示列:
217 * string OrignFile = Server.MapPath("../說明.txt");
218 * string NewFile = Server.MapPath("http://www.cnblogs.com/說明.txt");
219 * EC.FileObj.FileMove(OrignFile, NewFile);
220 *****************************************/
221 /**////
222 /// 移動檔案
223 ///
224 /// 原始路徑
225 /// 新路徑
226 public static void FileMove(string OrignFile, string NewFile)
227 {
228 File.Move(OrignFile, NewFile);
229 }
230 #endregion
231
232 在當前目錄下建立目錄#region 在當前目錄下建立目錄
233 /**//****************************************
234 * 函式名稱:FolderCreate
235 * 功能說明:在當前目錄下建立目錄
236 * 參 數:OrignFolder:當前目錄,NewFloder:新目錄
237 * 呼叫示列:
238 * string OrignFolder = Server.MapPath("test/");
239 * string NewFloder = "new";
240 * EC.FileObj.FolderCreate(OrignFolder, NewFloder);
241 *****************************************/
242 /**////
243 /// 在當前目錄下建立目錄
244 ///
245 /// 當前目錄
246 /// 新目錄
247 public static void FolderCreate(string OrignFolder, string NewFloder)
248 {
249 Directory.SetCurrentDirectory(OrignFolder);
250 Directory.CreateDirectory(NewFloder);
251 }
252
253 /**////
254 /// 建立資料夾
255 ///
256 ///
257 public static void FolderCreate(string Path)
258 {
259 // 判斷目標目錄是否存在如果不存在則新建之
260 if (!Directory.Exists(Path))
261 Directory.CreateDirectory(Path);
262 }
263
264 #endregion
265
266 建立目錄#region 建立目錄
267 public static void FileCreate(string Path)
268 {
269 FileInfo CreateFile = new FileInfo(Path); //建立檔案
270 if (!CreateFile.Exists)
271 {
272 FileStream FS = CreateFile.Create();
273 FS.Close();
274 }
275 }
276 #endregion
277
278 遞迴刪除資料夾目錄及檔案#region 遞迴刪除資料夾目錄及檔案
279 /**//****************************************
280 * 函式名稱:DeleteFolder
281 * 功能說明:遞迴刪除資料夾目錄及檔案
282 * 參 數:dir:資料夾路徑
283 * 呼叫示列:
284 * string dir = Server.MapPath("test/");
285 * EC.FileObj.DeleteFolder(dir);
286 *****************************************/
287 /**////
288 /// 遞迴刪除資料夾目錄及檔案
289 ///
290 ///
291 ///
292 public static void DeleteFolder(string dir)
293 {
294 if (Directory.Exists(dir)) //如果存在這個資料夾刪除之
295 {
296 foreach (string d in Directory.GetFileSystemEntries(dir))
297 {
298 if (File.Exists(d))
299 File.Delete(d); //直接刪除其中的檔案
300 else
301 DeleteFolder(d); //遞迴刪除子資料夾
302 }
303 Directory.Delete(dir, true); //刪除已空資料夾
304 }
305 }
306
307 #endregion
308
309 將指定資料夾下面的所有內容copy到目標資料夾下面 果目標資料夾為只讀屬性就會報錯。#region 將指定資料夾下面的所有內容copy到目標資料夾下面 果目標資料夾為只讀屬性就會報錯。
310 /**//****************************************
311 * 函式名稱:CopyDir
312 * 功能說明:將指定資料夾下面的所有內容copy到目標資料夾下面 果目標資料夾為只讀屬性就會報錯。
313 * 參 數:srcPath:原始路徑,aimPath:目標資料夾
314 * 呼叫示列:
315 * string srcPath = Server.MapPath("test/");
316 * string aimPath = Server.MapPath("test1/");
317 * EC.FileObj.CopyDir(srcPath,aimPath);
318 *****************************************/
319 /**////
320 /// 指定資料夾下面的所有內容copy到目標資料夾下面
321 ///
322 /// 原始路徑
323 /// 目標資料夾
324 public static void CopyDir(string srcPath, string aimPath)
325 {
326 try
327 {
328 // 檢查目標目錄是否以目錄分割字元結束如果不是則新增之
329 if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)
330 aimPath += Path.DirectorySeparatorChar;
331 // 判斷目標目錄是否存在如果不存在則新建之
332 if (!Directory.Exists(aimPath))
333 Directory.CreateDirectory(aimPath);
334 // 得到源目錄的檔案列表,該裡面是包含檔案以及目錄路徑的一個陣列
335 //如果你指向copy目標檔案下面的檔案而不包含目錄請使用下面的方法
336 //string[] fileList = Directory.GetFiles(srcPath);
337 string[] fileList = Directory.GetFileSystemEntries(srcPath);
338 //遍歷所有的檔案和目錄
339 foreach (string file in fileList)
340 {
341 //先當作目錄處理如果存在這個目錄就遞迴Copy該目錄下面的檔案
342
343 if (Directory.Exists(file))
344 CopyDir(file, aimPath + Path.GetFileName(file));
345 //否則直接Copy檔案
346 else
347 File.Copy(file, aimPath + Path.GetFileName(file), true);
348 }
349 }
350 catch (Exception ee)
351 {
352 throw new Exception(ee.ToString());
353 }
354 }
355 #endregion
356
357 獲取指定資料夾下所有子目錄及檔案(樹形)#region 獲取指定資料夾下所有子目錄及檔案(樹形)
358 /**//****************************************
359 * 函式名稱:GetFoldAll(string Path)
360 * 功能說明:獲取指定資料夾下所有子目錄及檔案(樹形)
361 * 參 數:Path:詳細路徑
362 * 呼叫示列:
363 * string strDirlist = Server.MapPath("templates");
364 * this.Literal1.Text = EC.FileObj.GetFoldAll(strDirlist);
365 *****************************************/
366 /**////
367 /// 獲取指定資料夾下所有子目錄及檔案
368 ///
369 /// 詳細路徑
370 public static string GetFoldAll(string Path)
371 {
372
373 string str = "";
374 DirectoryInfo thisOne = new DirectoryInfo(Path);
375 str = ListTreeShow(thisOne, 0, str);
376 return str;
377
378 }
379
380 /**////
381 /// 獲取指定資料夾下所有子目錄及檔案函式
382 ///
383 /// 指定目錄
384 /// 預設起始值,呼叫時,一般為0
385 /// 用於迭加的傳入值,一般為空
386 ///
387 public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn)//遞迴目錄 檔案
388 {
389 DirectoryInfo[] subDirectories = theDir.GetDirectories();//獲得目錄
390 foreach (DirectoryInfo dirinfo in subDirectories)
391 {
392
393 if (nLevel == 0)
394 {
395 Rn += "├";
396 }
397 else
398 {
399 string _s = "";
400 for (int i = 1; i <= nLevel; i++)
401 {
402 _s += "│ ";
403 }
404 Rn += _s + "├";
405 }
406 Rn += "" + dirinfo.Name.ToString() + "
";
407 FileInfo[] fileInfo = dirinfo.GetFiles(); //目錄下的檔案
408 foreach (FileInfo fInfo in fileInfo)
409 {
410 if (nLevel == 0)
411 {
412 Rn += "│ ├";
413 }
414 else
415 {
416 string _f = "";
417 for (int i = 1; i <= nLevel; i++)
418 {
419 _f += "│ ";
420 }
421 Rn += _f + "│ ├";
422 }
423 Rn += fInfo.Name.ToString() + "
";
424 }
425 Rn = ListTreeShow(dirinfo, nLevel + 1, Rn);
426
427
428 }
429 return Rn;
430 }
431
432
433
434 /**//****************************************
435 * 函式名稱:GetFoldAll(string Path)
436 * 功能說明:獲取指定資料夾下所有子目錄及檔案(下拉框形)
437 * 參 數:Path:詳細路徑
438 * 呼叫示列:
439 * string strDirlist = Server.MapPath("templates");
440 * this.Literal2.Text = EC.FileObj.GetFoldAll(strDirlist,"tpl","");
441 *****************************************/
442 /**////
443 /// 獲取指定資料夾下所有子目錄及檔案(下拉框形)
444 ///
445 /// 詳細路徑
446 ///下拉選單名稱
447 ///預設選擇模板名稱
448 public static string GetFoldAll(string Path,string DropName,string tplPath)
449 {
450 string strDrop = "";
455
456 }
457
458 /**////
459 /// 獲取指定資料夾下所有子目錄及檔案函式
460 ///
461 /// 指定目錄
462 /// 預設起始值,呼叫時,一般為0
463 /// 用於迭加的傳入值,一般為空
464 /// 預設選擇模板名稱
465 ///
466 public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn,string tplPath)//遞迴目錄 檔案
467 {
468 DirectoryInfo[] subDirectories = theDir.GetDirectories();//獲得目錄
469
470 foreach (DirectoryInfo dirinfo in subDirectories)
471 {
472
473 Rn += "";
494
495
496 FileInfo[] fileInfo = dirinfo.GetFiles(); //目錄下的檔案
497 foreach (FileInfo fInfo in fileInfo)
498 {
499 Rn += "";
520 }
521 Rn = ListTreeShow(dirinfo, nLevel + 1, Rn, tplPath);
522
523
524 }
525 return Rn;
526 }
527 #endregion
528
529 獲取資料夾大小#region 獲取資料夾大小
530 /**//****************************************
531 * 函式名稱:GetDirectoryLength(string dirPath)
532 * 功能說明:獲取資料夾大小
533 * 參 數:dirPath:資料夾詳細路徑
534 * 呼叫示列:
535 * string Path = Server.MapPath("templates");
536 * Response.Write(EC.FileObj.GetDirectoryLength(Path));
537 *****************************************/
538 /**////
539 /// 獲取資料夾大小
540 ///
541 /// 資料夾路徑
542 ///
543 public static long GetDirectoryLength(string dirPath)
544 {
545 if (!Directory.Exists(dirPath))
546 return 0;
547 long len = 0;
548 DirectoryInfo di = new DirectoryInfo(dirPath);
549 foreach (FileInfo fi in di.GetFiles())
550 {
551 len += fi.Length;
552 }
553 DirectoryInfo[] dis = di.GetDirectories();
554 if (dis.Length > 0)
555 {
556 for (int i = 0; i < dis.Length; i++)
557 {
558 len += GetDirectoryLength(dis.FullName);
559 }
560 }
561 return len;
562 }
563 #endregion
564
565 獲取指定檔案詳細屬性#region 獲取指定檔案詳細屬性
566 /**//****************************************
567 * 函式名稱:GetFileAttibe(string filePath)
568 * 功能說明:獲取指定檔案詳細屬性
569 * 參 數:filePath:檔案詳細路徑
570 * 呼叫示列:
571 * string file = Server.MapPath("robots.txt");
572 * Response.Write(EC.FileObj.GetFileAttibe(file));
573 *****************************************/
574 /**////
575 /// 獲取指定檔案詳細屬性
576 ///
577 /// 檔案詳細路徑
578 ///
579 public static string GetFileAttibe(string filePath)
580 {
581 string str = "";
582 System.IO.FileInfo objFI = new System.IO.FileInfo(filePath);
583 str += "詳細路徑:" + objFI.FullName + "
檔名稱:" + objFI.Name + "
檔案長度:" + objFI.Length.ToString() + "位元組
建立時間" + objFI.CreationTime.ToString() + "
最後訪問時間:" + objFI.LastAccessTime.ToString() + "
修改時間:" + objFI.LastWriteTime.ToString() + "
所在目錄:" + objFI.DirectoryName + "
副檔名:" + objFI.Extension;
584 return str;
585 }
586 #endregion
587 }
588 }
2 using System.Configuration;
3 using System.Web;
4 using System.Web.Security;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7 using System.Web.UI.WebControls.WebParts;
8 using System.Web.UI.HtmlControls;
9 using System.Text;
10 using System.IO;
11
12 namespace EC
13 {
14 /**////
15 /// FileObj 的摘要說明
16 ///
17 public class FileObj
18 {
19 建構函式#region 建構函式
20 private bool _alreadyDispose = false;
21 public FileObj()
22 {
23 //
24 // TODO: 在此處新增建構函式邏輯
25 //
26 }
27 ~FileObj()
28 {
29 Dispose(); ;
30 }
31
32 protected virtual void Dispose(bool isDisposing)
33 {
34 if (_alreadyDispose) return;
35 //if (isDisposing)
36 //{
37 // if (xml != null)
38 // {
39 // xml = null;
40 // }
41 //}
42 _alreadyDispose = true;
43 }
44 #endregion
45
46 IDisposable 成員#region IDisposable 成員
47
48 public void Dispose()
49 {
50 Dispose(true);
51 GC.SuppressFinalize(this);
52 }
53
54 #endregion
55
56 取得檔案字尾名#region 取得檔案字尾名
57 /**//****************************************
58 * 函式名稱:GetPostfixStr
59 * 功能說明:取得檔案字尾名
60 * 參 數:filename:檔名稱
61 * 呼叫示列:
62 * string filename = "aaa.aspx";
63 * string s = EC.FileObj.GetPostfixStr(filename);
64 *****************************************/
65 /**////
66 /// 取字尾名
67 ///
68 /// 檔名
69 ///
70 public static string GetPostfixStr(string filename)
71 {
72 int start = filename.LastIndexOf(".");
73 int length = filename.Length;
74 string postfix = filename.Substring(start, length - start);
75 return postfix;
76 }
77 #endregion
78
79 寫檔案#region 寫檔案
80 /**//****************************************
81 * 函式名稱:WriteFile
82 * 功能說明:當檔案不存時,則建立檔案,並追加檔案
83 * 參 數:Path:檔案路徑,Strings:文字內容
84 * 呼叫示列:
85 * string Path = Server.MapPath("Default2.aspx");
86 * string Strings = "這是我寫的內容啊";
87 * EC.FileObj.WriteFile(Path,Strings);
88 *****************************************/
89 /**////
90 /// 寫檔案
91 ///
92 /// 檔案路徑
93 /// 檔案內容
94 public static void WriteFile(string Path, string Strings)
95 {
96
97 if (!System.IO.File.Exists(Path))
98 {
99 //Directory.CreateDirectory(Path);
100
101 System.IO.FileStream f = System.IO.File.Create(Path);
102 f.Close();
103 f.Dispose();
104 }
105 System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, true, System.Text.Encoding.UTF8);
106 f2.WriteLine(Strings);
107 f2.Close();
108 f2.Dispose();
109
110
111 }
112 #endregion
113
114 讀檔案#region 讀檔案
115 /**//****************************************
116 * 函式名稱:ReadFile
117 * 功能說明:讀取文字內容
118 * 參 數:Path:檔案路徑
119 * 呼叫示列:
120 * string Path = Server.MapPath("Default2.aspx");
121 * string s = EC.FileObj.ReadFile(Path);
122 *****************************************/
123 /**////
124 /// 讀檔案
125 ///
126 /// 檔案路徑
127 ///
128 public static string ReadFile(string Path)
129 {
130 string s = "";
131 if (!System.IO.File.Exists(Path))
132 s = "不存在相應的目錄";
133 else
134 {
135 StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("gb2312"));
136 s = f2.ReadToEnd();
137 f2.Close();
138 f2.Dispose();
139 }
140
141 return s;
142 }
143 #endregion
144
145 追加檔案#region 追加檔案
146 /**//****************************************
147 * 函式名稱:FileAdd
148 * 功能說明:追加檔案內容
149 * 參 數:Path:檔案路徑,strings:內容
150 * 呼叫示列:
151 * string Path = Server.MapPath("Default2.aspx");
152 * string Strings = "新追加內容";
153 * EC.FileObj.FileAdd(Path, Strings);
154 *****************************************/
155 /**////
156 /// 追加檔案
157 ///
158 /// 檔案路徑
159 /// 內容
160 public static void FileAdd(string Path, string strings)
161 {
162 StreamWriter sw = File.AppendText(Path);
163 sw.Write(strings);
164 sw.Flush();
165 sw.Close();
166 sw.Dispose();
167 }
168 #endregion
169
170 拷貝檔案#region 拷貝檔案
171 /**//****************************************
172 * 函式名稱:FileCoppy
173 * 功能說明:拷貝檔案
174 * 參 數:OrignFile:原始檔案,NewFile:新檔案路徑
175 * 呼叫示列:
176 * string OrignFile = Server.MapPath("Default2.aspx");
177 * string NewFile = Server.MapPath("Default3.aspx");
178 * EC.FileObj.FileCoppy(OrignFile, NewFile);
179 *****************************************/
180 /**////
181 /// 拷貝檔案
182 ///
183 /// 原始檔案
184 /// 新檔案路徑
185 public static void FileCoppy(string OrignFile, string NewFile)
186 {
187 File.Copy(OrignFile, NewFile, true);
188 }
189
190 #endregion
191
192 刪除檔案#region 刪除檔案
193 /**//****************************************
194 * 函式名稱:FileDel
195 * 功能說明:刪除檔案
196 * 參 數:Path:檔案路徑
197 * 呼叫示列:
198 * string Path = Server.MapPath("Default3.aspx");
199 * EC.FileObj.FileDel(Path);
200 *****************************************/
201 /**////
202 /// 刪除檔案
203 ///
204 /// 路徑
205 public static void FileDel(string Path)
206 {
207 File.Delete(Path);
208 }
209 #endregion
210
211 移動檔案#region 移動檔案
212 /**//****************************************
213 * 函式名稱:FileMove
214 * 功能說明:移動檔案
215 * 參 數:OrignFile:原始路徑,NewFile:新檔案路徑
216 * 呼叫示列:
217 * string OrignFile = Server.MapPath("../說明.txt");
218 * string NewFile = Server.MapPath("http://www.cnblogs.com/說明.txt");
219 * EC.FileObj.FileMove(OrignFile, NewFile);
220 *****************************************/
221 /**////
222 /// 移動檔案
223 ///
224 /// 原始路徑
225 /// 新路徑
226 public static void FileMove(string OrignFile, string NewFile)
227 {
228 File.Move(OrignFile, NewFile);
229 }
230 #endregion
231
232 在當前目錄下建立目錄#region 在當前目錄下建立目錄
233 /**//****************************************
234 * 函式名稱:FolderCreate
235 * 功能說明:在當前目錄下建立目錄
236 * 參 數:OrignFolder:當前目錄,NewFloder:新目錄
237 * 呼叫示列:
238 * string OrignFolder = Server.MapPath("test/");
239 * string NewFloder = "new";
240 * EC.FileObj.FolderCreate(OrignFolder, NewFloder);
241 *****************************************/
242 /**////
243 /// 在當前目錄下建立目錄
244 ///
245 /// 當前目錄
246 /// 新目錄
247 public static void FolderCreate(string OrignFolder, string NewFloder)
248 {
249 Directory.SetCurrentDirectory(OrignFolder);
250 Directory.CreateDirectory(NewFloder);
251 }
252
253 /**////
254 /// 建立資料夾
255 ///
256 ///
257 public static void FolderCreate(string Path)
258 {
259 // 判斷目標目錄是否存在如果不存在則新建之
260 if (!Directory.Exists(Path))
261 Directory.CreateDirectory(Path);
262 }
263
264 #endregion
265
266 建立目錄#region 建立目錄
267 public static void FileCreate(string Path)
268 {
269 FileInfo CreateFile = new FileInfo(Path); //建立檔案
270 if (!CreateFile.Exists)
271 {
272 FileStream FS = CreateFile.Create();
273 FS.Close();
274 }
275 }
276 #endregion
277
278 遞迴刪除資料夾目錄及檔案#region 遞迴刪除資料夾目錄及檔案
279 /**//****************************************
280 * 函式名稱:DeleteFolder
281 * 功能說明:遞迴刪除資料夾目錄及檔案
282 * 參 數:dir:資料夾路徑
283 * 呼叫示列:
284 * string dir = Server.MapPath("test/");
285 * EC.FileObj.DeleteFolder(dir);
286 *****************************************/
287 /**////
288 /// 遞迴刪除資料夾目錄及檔案
289 ///
290 ///
291 ///
292 public static void DeleteFolder(string dir)
293 {
294 if (Directory.Exists(dir)) //如果存在這個資料夾刪除之
295 {
296 foreach (string d in Directory.GetFileSystemEntries(dir))
297 {
298 if (File.Exists(d))
299 File.Delete(d); //直接刪除其中的檔案
300 else
301 DeleteFolder(d); //遞迴刪除子資料夾
302 }
303 Directory.Delete(dir, true); //刪除已空資料夾
304 }
305 }
306
307 #endregion
308
309 將指定資料夾下面的所有內容copy到目標資料夾下面 果目標資料夾為只讀屬性就會報錯。#region 將指定資料夾下面的所有內容copy到目標資料夾下面 果目標資料夾為只讀屬性就會報錯。
310 /**//****************************************
311 * 函式名稱:CopyDir
312 * 功能說明:將指定資料夾下面的所有內容copy到目標資料夾下面 果目標資料夾為只讀屬性就會報錯。
313 * 參 數:srcPath:原始路徑,aimPath:目標資料夾
314 * 呼叫示列:
315 * string srcPath = Server.MapPath("test/");
316 * string aimPath = Server.MapPath("test1/");
317 * EC.FileObj.CopyDir(srcPath,aimPath);
318 *****************************************/
319 /**////
320 /// 指定資料夾下面的所有內容copy到目標資料夾下面
321 ///
322 /// 原始路徑
323 /// 目標資料夾
324 public static void CopyDir(string srcPath, string aimPath)
325 {
326 try
327 {
328 // 檢查目標目錄是否以目錄分割字元結束如果不是則新增之
329 if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)
330 aimPath += Path.DirectorySeparatorChar;
331 // 判斷目標目錄是否存在如果不存在則新建之
332 if (!Directory.Exists(aimPath))
333 Directory.CreateDirectory(aimPath);
334 // 得到源目錄的檔案列表,該裡面是包含檔案以及目錄路徑的一個陣列
335 //如果你指向copy目標檔案下面的檔案而不包含目錄請使用下面的方法
336 //string[] fileList = Directory.GetFiles(srcPath);
337 string[] fileList = Directory.GetFileSystemEntries(srcPath);
338 //遍歷所有的檔案和目錄
339 foreach (string file in fileList)
340 {
341 //先當作目錄處理如果存在這個目錄就遞迴Copy該目錄下面的檔案
342
343 if (Directory.Exists(file))
344 CopyDir(file, aimPath + Path.GetFileName(file));
345 //否則直接Copy檔案
346 else
347 File.Copy(file, aimPath + Path.GetFileName(file), true);
348 }
349 }
350 catch (Exception ee)
351 {
352 throw new Exception(ee.ToString());
353 }
354 }
355 #endregion
356
357 獲取指定資料夾下所有子目錄及檔案(樹形)#region 獲取指定資料夾下所有子目錄及檔案(樹形)
358 /**//****************************************
359 * 函式名稱:GetFoldAll(string Path)
360 * 功能說明:獲取指定資料夾下所有子目錄及檔案(樹形)
361 * 參 數:Path:詳細路徑
362 * 呼叫示列:
363 * string strDirlist = Server.MapPath("templates");
364 * this.Literal1.Text = EC.FileObj.GetFoldAll(strDirlist);
365 *****************************************/
366 /**////
367 /// 獲取指定資料夾下所有子目錄及檔案
368 ///
369 /// 詳細路徑
370 public static string GetFoldAll(string Path)
371 {
372
373 string str = "";
374 DirectoryInfo thisOne = new DirectoryInfo(Path);
375 str = ListTreeShow(thisOne, 0, str);
376 return str;
377
378 }
379
380 /**////
381 /// 獲取指定資料夾下所有子目錄及檔案函式
382 ///
383 /// 指定目錄
384 /// 預設起始值,呼叫時,一般為0
385 /// 用於迭加的傳入值,一般為空
386 ///
387 public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn)//遞迴目錄 檔案
388 {
389 DirectoryInfo[] subDirectories = theDir.GetDirectories();//獲得目錄
390 foreach (DirectoryInfo dirinfo in subDirectories)
391 {
392
393 if (nLevel == 0)
394 {
395 Rn += "├";
396 }
397 else
398 {
399 string _s = "";
400 for (int i = 1; i <= nLevel; i++)
401 {
402 _s += "│ ";
403 }
404 Rn += _s + "├";
405 }
406 Rn += "" + dirinfo.Name.ToString() + "
";
407 FileInfo[] fileInfo = dirinfo.GetFiles(); //目錄下的檔案
408 foreach (FileInfo fInfo in fileInfo)
409 {
410 if (nLevel == 0)
411 {
412 Rn += "│ ├";
413 }
414 else
415 {
416 string _f = "";
417 for (int i = 1; i <= nLevel; i++)
418 {
419 _f += "│ ";
420 }
421 Rn += _f + "│ ├";
422 }
423 Rn += fInfo.Name.ToString() + "
";
424 }
425 Rn = ListTreeShow(dirinfo, nLevel + 1, Rn);
426
427
428 }
429 return Rn;
430 }
431
432
433
434 /**//****************************************
435 * 函式名稱:GetFoldAll(string Path)
436 * 功能說明:獲取指定資料夾下所有子目錄及檔案(下拉框形)
437 * 參 數:Path:詳細路徑
438 * 呼叫示列:
439 * string strDirlist = Server.MapPath("templates");
440 * this.Literal2.Text = EC.FileObj.GetFoldAll(strDirlist,"tpl","");
441 *****************************************/
442 /**////
443 /// 獲取指定資料夾下所有子目錄及檔案(下拉框形)
444 ///
445 /// 詳細路徑
446 ///下拉選單名稱
447 ///預設選擇模板名稱
448 public static string GetFoldAll(string Path,string DropName,string tplPath)
449 {
450 string strDrop = "";
455
456 }
457
458 /**////
459 /// 獲取指定資料夾下所有子目錄及檔案函式
460 ///
461 /// 指定目錄
462 /// 預設起始值,呼叫時,一般為0
463 /// 用於迭加的傳入值,一般為空
464 /// 預設選擇模板名稱
465 ///
466 public static string ListTreeShow(DirectoryInfo theDir, int nLevel, string Rn,string tplPath)//遞迴目錄 檔案
467 {
468 DirectoryInfo[] subDirectories = theDir.GetDirectories();//獲得目錄
469
470 foreach (DirectoryInfo dirinfo in subDirectories)
471 {
472
473 Rn += "";
494
495
496 FileInfo[] fileInfo = dirinfo.GetFiles(); //目錄下的檔案
497 foreach (FileInfo fInfo in fileInfo)
498 {
499 Rn += "";
520 }
521 Rn = ListTreeShow(dirinfo, nLevel + 1, Rn, tplPath);
522
523
524 }
525 return Rn;
526 }
527 #endregion
528
529 獲取資料夾大小#region 獲取資料夾大小
530 /**//****************************************
531 * 函式名稱:GetDirectoryLength(string dirPath)
532 * 功能說明:獲取資料夾大小
533 * 參 數:dirPath:資料夾詳細路徑
534 * 呼叫示列:
535 * string Path = Server.MapPath("templates");
536 * Response.Write(EC.FileObj.GetDirectoryLength(Path));
537 *****************************************/
538 /**////
539 /// 獲取資料夾大小
540 ///
541 /// 資料夾路徑
542 ///
543 public static long GetDirectoryLength(string dirPath)
544 {
545 if (!Directory.Exists(dirPath))
546 return 0;
547 long len = 0;
548 DirectoryInfo di = new DirectoryInfo(dirPath);
549 foreach (FileInfo fi in di.GetFiles())
550 {
551 len += fi.Length;
552 }
553 DirectoryInfo[] dis = di.GetDirectories();
554 if (dis.Length > 0)
555 {
556 for (int i = 0; i < dis.Length; i++)
557 {
558 len += GetDirectoryLength(dis.FullName);
559 }
560 }
561 return len;
562 }
563 #endregion
564
565 獲取指定檔案詳細屬性#region 獲取指定檔案詳細屬性
566 /**//****************************************
567 * 函式名稱:GetFileAttibe(string filePath)
568 * 功能說明:獲取指定檔案詳細屬性
569 * 參 數:filePath:檔案詳細路徑
570 * 呼叫示列:
571 * string file = Server.MapPath("robots.txt");
572 * Response.Write(EC.FileObj.GetFileAttibe(file));
573 *****************************************/
574 /**////
575 /// 獲取指定檔案詳細屬性
576 ///
577 /// 檔案詳細路徑
578 ///
579 public static string GetFileAttibe(string filePath)
580 {
581 string str = "";
582 System.IO.FileInfo objFI = new System.IO.FileInfo(filePath);
583 str += "詳細路徑:" + objFI.FullName + "
檔名稱:" + objFI.Name + "
檔案長度:" + objFI.Length.ToString() + "位元組
建立時間" + objFI.CreationTime.ToString() + "
最後訪問時間:" + objFI.LastAccessTime.ToString() + "
修改時間:" + objFI.LastWriteTime.ToString() + "
所在目錄:" + objFI.DirectoryName + "
副檔名:" + objFI.Extension;
584 return str;
585 }
586 #endregion
587 }
588 }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-622782/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- asp.net 對xml檔案的讀寫,新增,修改,刪除操作ASP.NETXML
- 批量刪除大量小檔案
- Linux批量刪除檔案Linux
- 批量刪除檔案中的^M
- Linux下批量刪除空檔案或者刪除指定大小的檔案Linux
- linux 模糊批量刪除檔案Linux
- LINUX 使用批量刪除檔案的幾種方法Linux
- 針對字尾刪除檔案的方法
- 刪除古怪檔案的方法
- vue+element-ui操作刪除(單行和批量刪除)VueUI
- liunx批量刪除指定字尾的檔案
- thinkphp對檔案的上傳,刪除,下載操作PHP
- php(js)批量刪除/單個刪除PHPJS
- win10休眠檔案有必要刪除嗎 刪除休眠檔案的方法Win10
- 定時拷貝加時間維的檔案和定時刪除過期檔案
- 檔案的刪除
- 6.12php對資料庫的刪除和批量刪除PHP資料庫
- git的忽略檔案和刪除檔案操作Git
- 刪除檔案
- Docker批量操作(啟停、刪除、歸檔、載入)Docker
- Linux批量刪除指定型別的檔案Linux型別
- Linux 批量刪除指定字尾的檔案Linux
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄)Oracle
- linux 批量刪除指定型別檔案Linux型別
- 使用Python批量刪除檔案列表薦Python
- 如何刪除win10更新檔案_win10刪除更新檔案的方法Win10
- 列表篇_深,淺拷貝,刪除,反轉,排序排序
- oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄) 轉Oracle
- 【轉】oracle 快速刪除大批量資料方法(全部刪除,條件刪除,刪除大量重複記錄)Oracle
- windows.old可以刪除嗎?windows.old檔案的刪除方法Windows
- python基礎之刪除檔案及刪除目錄的方法Python
- win10怎麼刪除dll檔案_win10dll檔案刪除的方法Win10
- win10怎麼刪除更新檔案 win10刪除更新檔案的方法Win10
- windows刪除檔案的批處理操作Windows
- Linux批量刪除同一型別檔案Linux型別
- SVN !檔案刪除
- rm 刪除檔案
- 批次刪除檔案