成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關于C#文件存儲管理:Directory類和File類

開發 后端
關于C#的文件存儲管理作者在使用File.Delete方法時遇到了一個有趣的現象。File.Delete方法也并不是徹底地抹去文件的內容,而只是對被刪除的文件作出某個標記而已。

C#文件存儲管理:目錄管理

.Net框架結構在名字空間System.IO中為我們提供了Directory類來進行目錄管理。利用它,我們可以完成對目錄及其子目錄進行創建、移動、瀏覽等操作,甚至還可以定義隱藏目錄和只讀目錄。

Directory的構造函數形式如下:

  1. public Directory(string path); 

其中的參數path表示目錄所在的路徑。

Directory的主要屬性有:

●Attributes:0x01表示只讀,0x02表示隱藏。

●Name:當前路徑名。

●Parent:上一級父目錄名。

●Root:所在根目錄名。

●Creation Time:目錄創建時間。

●LastAccessTime:上一次訪問目錄的時間。

●LastWriteTime:上一次修改目錄的時間。

我們常用到的Directory類的一些成員方法有:

●CreateDirectory(string path):創建子目錄。

●CreateDirectories(string path):創建多級子目錄。

●CreateFile(string filename):在當前目錄下創建一個新文件。

●Delete():刪除目錄。

下面的例子中,我們利用Directory的CreateDirectory和CreateDirectories方法創建一級和二級目錄。

程序清單17-1:

  1. usingSystem;  
  2. usingSystem.IO;  
  3. classDirectoryTest  
  4. {  
  5. publicstaticvoidMain()  
  6. {  
  7. Directoryd=newDirectory("c:\\C#");  
  8. Directoryd1;  
  9. Directoryd2;  
  10. try{  
  11. d1=d.CreateSubdirectory("file1");  
  12. }  
  13. catch(IOExceptione)  
  14. {  
  15. Console.WriteLine("  
  16. directoryfile1failedbecause:{0}",e);  
  17. return;  
  18. }  
  19. try{  
  20. d2=d.CreateSubdirectories("  
  21. file1\\file2");  
  22. //等于d2=d1.CreateSubDirectory("  
  23. file2");  
  24. }  
  25. catch(IOExceptione)  
  26. {  
  27. Console.WriteLine("  
  28. directoryfile2failedbecause:{0}",e);  
  29. return;  
  30. }  
  31. Console.WriteLine("  
  32. Createdirectorysuccessfully!");  
  33. }  

上面例子中的異常IOException表示準備創建的目錄名已經存在。System.IO中提供了各種輸入輸出的異常,便于我們了解任務失敗的原因所在,或者是給程序的用戶提示信息。

同樣我們可以進行目錄刪除操作。

程序清單17-2:

  1. usingSystem;  
  2. usingSystem.IO;  
  3. classDirectoryTest  
  4. {  
  5. publicstaticvoidMain()  
  6. {  
  7. Directoryd=newDirectory("  
  8. c:\\C#file1");  
  9. Directory[]subdir;  
  10. try{  
  11. subdir=d.GetDirectories();  
  12. }  
  13. catch(DirectoryNotFoundExceptione)  
  14. {  
  15. Console.WriteLine("  
  16. Cannotfindsuchadirectorybecause:{0}",e);  
  17. return;  
  18. }  
  19. foreach(Directorydirinsubdir){  
  20. dir.Delete();  
  21. }  
  22. d.Delete();  
  23. Console.WriteLine("  
  24. Deletesuccessfully!");  
  25. }  

#p#

C#文件存儲管理:文件管理

File類通常和FileStream類協作來完成對文件的創建、刪除、拷貝、移動、打開等操作。

File類的構造函數形式為:

  1. public File(string fileName); 

同樣,File類也有自己的屬性,如絕對路徑名DerictoryName、創建時間CreationTime、上次訪問時間LastAccessTime、上次修改時間LastWriteTime、文件長度Length等。

File類為我們提供的方法主要有CopyTo、MoveTo、Delete等,利用它們可以完成一些基本的文件管理。

下面給出的例子用于簡單的文件拷貝。這是一個帶命令行參數的可執行文件,第一個參數表示源文件的絕對路徑名,第二個參數表示目標文件的絕對路徑名。

程序清單17-3:

  1. usingSystem;  
  2. usingSystem.IO;  
  3. classFileTest  
  4. {  
  5. publicstaticvoidMain(String[]args)  
  6. {  
  7. //驗證參數輸入是否正確  
  8. stringsourcename;  
  9. stringtargetname;  
  10. try{  
  11. sourcename=args[0];  
  12. }  
  13. catch 
  14. {  
  15. Console.WriteLine("  
  16. Pleaseinputthenameofthesourcefilecorrectly");  
  17. return;  
  18. }  
  19. try{  
  20. targetname=args[1];  
  21. }  
  22. catch 
  23. {  
  24. Console.WriteLine("  
  25. Pleaseinputthenameofthetargetfilecorrectly");  
  26. return;  
  27. }  
  28. //進行文件拷貝操作  
  29. Filefile;  
  30. try{  
  31. file=newFile(sourcename);  
  32. }  
  33. catch 
  34. {  
  35. Console.WriteLine("  
  36. Cannotopenthesourcefilenamed'{0}'",  
  37. sourcename);  
  38. return;  
  39. }  
  40. try{  
  41. file.CopyTo(targetname,true);  
  42. }  
  43. catch 
  44. {  
  45. Console.WriteLine("  
  46. Canwritethetargetfilenamed'{0}'",targetname);  
  47. return;  
  48. }  
  49. Console.WriteLine("  
  50. Filecopyssuccessfully!");  
  51. }  

上面我們用到了File的CopyTo方法。若改為MoveTo方法,則程序可以用于文件的移動操作。

下面的例子用于刪除當前目錄下的所有文件。

程序清單17-4:

  1. usingSystem;  
  2. usingSystem.IO;  
  3. classFileTest  
  4. {  
  5. publicstaticvoidMain()  
  6. {  
  7. Console.WriteLine("  
  8. Areyousuretodeleteallthe  
  9. filesincurrentdirectory?");  
  10. Console.WriteLine("  
  11. Press'Y'thenentertocontinue,  
  12. anyotherkeytoabort");  
  13. inta=Console.Read();  
  14. if(a=='Y'||a=='y'){  
  15. Console.WriteLine("Deletingthefiles...");  
  16. }  
  17. else{  
  18. Console.WriteLine("canceledbyuser");  
  19. return;  
  20. }  
  21. Directorydir=newDirectory(".");  
  22. foreach(Filefindir.GetFiles()){  
  23. f.Delete();  
  24. }  
  25. }  

其中,語句foreach(File f in dir.GetFiles())表示查找當前所有文件。Directory類的成員方法GetFiles有兩種重載形式:

  1. public File[] GetFiles();  
  2. public File[] GetFiles(string searchCriteria);  

后面一種方法中的參數表示搜索文件的條件。我們對程序17-4可以稍做改動,把最后一段代碼改寫為:

  1. foreach(File f in dir.GetFiles("*.exe")){  
  2. f.Delete();  
  3. }  

這樣,程序實際上是變成了刪除當前目錄下的所有擴展名為.exe的文件。

值得一提的是,作者在使用File.Delete方法時遇到了一個有趣的現象。文件刪除后,在Windows的回收站中找不到,但是使用工具軟件Norton Unerase Wizard卻成功地找到并恢復了被刪除了的文件,而且文件名還保存完好(Windows徹底刪除的文件恢復時文件名的第一個字符已被刪除)。看來File.Delete方法也并不是徹底地抹去文件的內容,而只是對被刪除的文件作出某個標記而已。

以上就介紹了C#文件存儲管理的一些細節。

【編輯推薦】

  1. C#刪除指定文件兩種方法
  2. C# 進度條效果實現實例
  3. C# 枚舉簡介及優點淺析
  4. C# 枚舉實例應用淺析
  5. C# 枚舉常用方法淺析
責任編輯:冰荷 來源: bianceng
相關推薦

2009-08-10 10:04:25

C#抽象類C#接口

2009-08-27 13:37:11

C#類和結構

2009-08-27 16:18:47

C#類C#結構體

2009-08-03 18:12:31

C#抽象類

2009-08-26 17:05:23

C# ThreadPo

2009-09-03 10:42:16

C# Employee

2009-09-03 15:57:11

C# SystemMe

2009-08-12 09:41:28

C# Director

2009-08-31 15:13:46

C# CWorker類

2009-08-21 17:24:06

C# SingleIn

2009-09-07 14:29:52

C# ServiceC

2009-08-06 14:43:10

C# Calculat

2009-08-21 17:24:06

C# SingleIn

2010-01-15 18:35:25

C++的類

2012-12-26 09:31:44

C#Winform

2009-08-28 14:09:19

C#靜態類

2009-08-10 10:37:17

C#類與結構

2009-08-13 14:06:37

C#結構體結構體和類的區別

2009-08-05 18:39:54

C#異常類

2009-08-06 14:53:41

C# User類
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久亚洲综合 | 欧美一区二区三区视频在线播放 | 久久久久成人精品免费播放动漫 | 欧美成人自拍 | 网址黄 | 日韩成人在线免费观看 | 精品国产99 | 国产视频中文字幕在线观看 | 久久精品久久精品久久精品 | 国产一级片免费视频 | 国产精品视频不卡 | 日韩精品一区二区三区在线 | 精产国产伦理一二三区 | 一区二区国产精品 | 久久久精品 | 天天搞夜夜操 | 国产在线播 | 久久久久久亚洲国产精品 | 欧美aⅴ在线观看 | 欧美精品91 | 国产黄色一级电影 | 在线一级片 | 国产午夜在线 | 2018国产精品 | 国产精品久久久久久久免费大片 | 欧美1页 | 热久久性 | 在线一区二区三区 | 99福利在线观看 | 丝袜 亚洲 欧美 日韩 综合 | 羞羞网站在线观看 | 99久久免费精品视频 | 欧美精品一区二区三区四区 | 成人自拍视频 | 亚洲欧美日韩在线一区二区 | 中文字幕在线一区 | 9191av| 国产一区二区三区四区 | 亚州综合一区 | 国产一区二区三区久久 | 欧美自拍视频 |