日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
關(guān)于C#文件存儲管理:Directory類和File類

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

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

Directory的構(gòu)造函數(shù)形式如下:

 
 
 
  1. public Directory(string path); 

其中的參數(shù)path表示目錄所在的路徑。

Directory的主要屬性有:

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

●Name:當(dāng)前路徑名。

●Parent:上一級父目錄名。

●Root:所在根目錄名。

●Creation Time:目錄創(chuàng)建時間。

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

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

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

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

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

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

●Delete():刪除目錄。

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

程序清單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表示準(zhǔn)備創(chuàng)建的目錄名已經(jīng)存在。System.IO中提供了各種輸入輸出的異常,便于我們了解任務(wù)失敗的原因所在,或者是給程序的用戶提示信息。

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

程序清單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類協(xié)作來完成對文件的創(chuàng)建、刪除、拷貝、移動、打開等操作。

File類的構(gòu)造函數(shù)形式為:

 
 
 
  1. public File(string fileName); 

同樣,F(xiàn)ile類也有自己的屬性,如絕對路徑名DerictoryName、創(chuàng)建時間CreationTime、上次訪問時間LastAccessTime、上次修改時間LastWriteTime、文件長度Length等。

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

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

程序清單17-3:

 
 
 
  1. usingSystem;  
  2. usingSystem.IO;  
  3. classFileTest  
  4. {  
  5. publicstaticvoidMain(String[]args)  
  6. {  
  7. //驗證參數(shù)輸入是否正確  
  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方法,則程序可以用于文件的移動操作。

下面的例子用于刪除當(dāng)前目錄下的所有文件。

程序清單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())表示查找當(dāng)前所有文件。Directory類的成員方法GetFiles有兩種重載形式:

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

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

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

這樣,程序?qū)嶋H上是變成了刪除當(dāng)前目錄下的所有擴展名為.exe的文件。

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

以上就介紹了C#文件存儲管理的一些細(xì)節(jié)。

【編輯推薦】

  1. C#刪除指定文件兩種方法
  2. C# 進度條效果實現(xiàn)實例
  3. C# 枚舉簡介及優(yōu)點淺析
  4. C# 枚舉實例應(yīng)用淺析
  5. C# 枚舉常用方法淺析

分享文章:關(guān)于C#文件存儲管理:Directory類和File類
網(wǎng)頁URL:http://m.5511xx.com/article/cdiepps.html