• /  53
  • 下載費用: 9.90積分  

ASPNET網站開發全部課件第14章 文件處理.ppt

'ASPNET網站開發全部課件第14章 文件處理.ppt'
第14章 文件處理1本章要點:掌握Web服務器上驅動器、文件夾的操作掌握Web服務器上文件的新建、移動、復制和刪除操作掌握Web服務器上讀寫文件的方法熟悉文件的上傳操作2目錄14.1 文件與目錄操作14.1.1 目錄信息與DirectoryInfo類與14.1.2 路徑與Path類14.1.3 File類的基本用法:文件存在性判定、文件刪除等14.1.4 文件信息與FileInfo類14.2 使用FileUpLoad控件實現文件上傳14.2.1 關于FileUpLoad組件14.2.2 FileUpLoad組件的后臺代碼*14.3 文件讀寫操作14.3.1 Stream類14.3.2 Reader和Writer類14.4 小結314.1 文件與目錄操作在Web應用程序中,Web服務器上的驅動器、文件夾和文件等操作很廣泛,如越來越流行的網絡硬盤。需要導入System.IO命名空間來處理驅動器、文件夾和文件的基本操作。414.1.1 獲取驅動器信息.NET Framework 3.5新增加的DriveInfo類可以實現對指定驅動器信息的訪問。利用DriveInfo類可以方便地獲取Web服務器上每個驅動器的名稱、類型、大小和狀態信息等。5DriveInfo類常用屬性和方法表 AvailableFreeSpace獲取驅動器可用空閑空間量。該屬性會考慮磁盤配額,和TotalFreeSpace的值可能不同。DriveFormat獲取文件系統的名稱,例如 NTFS 或 FAT32。DriveType獲取驅動器類型。IsReady邏輯值,表示一個特定驅動器是否已準備好。Name獲取驅動器的名稱。RootDirectory獲取驅動器的根文件夾。TotalFreeSpace獲取驅動器可用空閑空間總量。TotalSize獲取驅動器上存儲空間的總大小。VolumeLabel獲取或設置驅動器的卷標。GetDrives()獲取Web服務器上所有邏輯驅動器的名稱。6實例14-1 顯示Web 服務器上所有驅動器的信息 頁面加載時獲取當前系統中所有驅動器的信息,每個驅動器以一個節點的形式顯示在控件TreeView1中。源程序:myDriveInfo.aspx 程序說明:實現文件操作需要導入命名空間System.IO。程序利用DriveInfo.GetDrives()獲取所有驅動器對象集allDrives,然后利用foreach語句遍歷allDrives,將驅動器的信息以節點的方式添加到控件TreeView1中。 返回目錄714.1.2 文件夾操作操作Web服務器的文件夾和子文件夾。System.IO包含的Directory類和DirectoryInfo類提供的一組方法,可以實現創建和刪除文件夾,復制、移動、重命名文件夾,遍歷文件夾和設置或獲取文件夾信息等操作。 8Directory類常用方法表CreateDirectory() 創建指定路徑中的文件夾。Delete() 刪除指定的文件夾。Exists() 確定是否存在文件夾路徑。GetCurrentDirectory() 獲取應用程序的當前文件夾。GetDirectories() 獲取指定文件夾中所有子文件夾名稱的集合。GetDirectoryRoot() 返回指定路徑的卷信息、根信息或兩者同時返回。9Directory類常用方法表(續)GetFiles() 返回指定文件夾中所有文件的集合。GetFileSystemEntries() 返回指定文件夾中所有文件和子文件夾的名稱集合。GetLogicalDrives() 檢索格式為“:\”的邏輯驅動器的名稱。GetParent() 檢索指定路徑的父文件夾,包括絕對路徑和相對路徑。Move() 將文件或文件夾及其內容移到新位置。SetCurrentDirectory()將應用程序的當前工作文件夾設置為指定的文件夾。10DirectoryInfo類常用方法表 Create()創建文件夾。CreateSubdirectory ()在指定路徑中創建一個或多個子文件夾。Delete()刪除當前文件夾。GetDirectories()返回當前文件夾的子文件夾。GetFiles()返回當前文件夾中所有文件的集合。MoveTo()將當前文件夾移動到新位置。ToString()返回用戶所傳遞的原始路徑。11比較Directory類和DirectoryInfo類Directory類的方法都是靜態的,也就是說,這些方法可直接調用,并且所有的方法在執行時都將進行安全檢查。DirectoryInfo類的方法是實例方法,使用前必須建立DirectoryInfo類的實例。Directory.CreateDirectory(@"c:\temp\sub1");DirectoryInfo dtyInfo = new DirectoryInfo(@"c:\temp\sub1");dtyInfo.Create(); 12Path類常用方法表 ChangeExtension()更改路徑字符串的擴展名。 Combine()合并兩個路徑字符串。 GetDirectoryName()返回指定路徑字符串的文件夾信息。 GetExtension()返回指定路徑字符串的擴展名。 GetFileName()返回指定路徑字符串的文件名和擴展名。 GetFileNameWithoutExtension()返回不具有擴展名的文件名。 GetFullPath()返回指定路徑字符串的絕對路徑。 GetPathRoot()獲取指定路徑的根文件夾信息。 GetRandomFileName()返回隨機文件夾名或文件名。13實例14-2 計算指定文件夾的大小在文本框中輸入合適的文件夾路徑后,單擊“計算文件夾大小按鈕”,則遍歷該文件夾下所有的子文件夾和文件并統計大小,并顯示樹形文件夾結構。本實例利用了GetDirectories()和GetFiles()方法,采用遞歸的方式遍歷文件夾下所有的子文件夾和文件。源程序:myDirectory.aspx14程序說明 自定義的靜態方法DirSize()分為兩部分FileInfo[] fis = d.GetFiles();DirectoryInfo[] dis = d.GetDirectories(); 上述語句將返回DirectoryInfo對象,然后利用遞歸調用DirSize()方法計算子文件夾下所有文件大小的和。parent.ChildNodes.Add(nodeDi);parent.ChildNodes.Add(node);上述語句將文件夾和文件添加到TreeView控件中,形成目錄樹。返回目錄1514.1.3 文件的基本操作:存在性判定、刪除、重命名等文件的操作比文件夾操作更加頻繁。ASP.NET 3.5中的File、FileInfo類提供用于創建、復制、刪除、移動和打開文件的方法。File類和FileInfo類有些方法的功能相同,但File類中的方法都是靜態方法,而FileInfo類中的方法都是實例方法。16File類常用方法表 AppendA。省略部分。合并為一個路徑字符串。Encoding.ASCII表示編碼采用的是ASCII編碼方式,所以,如果在文本框中填入漢字則會出現亂碼。另外,要使用Encoding類則需要導入命名空間System.Text。 3814.3.2 Reader和Writer類Reader和Writer類可以完成在數據流中讀寫字節等操作??梢灾豢紤]數據的處理,而不必關心操作的細節。.NET Framework針對不同的數據流類型提供了不同的Reader和Writer類。不同的文件類型由對應的特定類進行讀寫。39Reader類System.IO.TextReader:抽象類,讀取一系列字符。System.IO.StreamReader:從字節數據流中讀取字符,派生于TextReader。System.IO.StringReader:將文本讀取為一系列內存字符串,派生于TextReader。System.IO.BinaryReader:從數據流中把基本數據類型讀取為二進制值。40Writer類System.IO.TextWriter:抽象類,寫入一系列字符。System.IO.StreamWriter:把字符寫入數據流,派生于TextWriter。System.IO.StringWriter:將文本寫入為內存字符串,派生于TextWriter。System.IO.BinaryWriter:將二進制基本數據寫入數據流。41TextReader和TextWriter類作為抽象類,用于讀寫文本類型的內容。在使用時,應建立它們的派生類對象實例,如: TextReader sr = new StreamReader(fileName);42TextReader類的常用方法表 Peek()讀取下一個字符,但不使用該字符。當讀到文件尾時,返回值-1,可以根據返回值判斷是否已到文件尾。Read()從輸入數據流中讀取數據。ReadBlock()從當前數據流中讀取最大count值的字符,再從index值開始將該數據寫入緩沖區。ReadLine()從當前數據流中讀取一行字符并將數據作為字符串返回。ReadToEnd()讀取從當前位置到結尾的所有字符并將它們作為一個字符串返回。Close()關閉TextReader并釋放與之關聯的所有系統資源。43TextWrite類的常用方法表 Write()將給定數據類型寫入文本數據流,不加換行符。WriteLine()寫入一行,并加一個換行符。Flush()將緩沖區數據寫入文件,然后再清除緩沖區中內容。如不使用該方法,將在關閉文件時把緩沖區中數據寫入文件。Close()關閉當前編寫器并釋放任何與該編寫器關聯的系統資源。44實例14-5 使用StreamReader和StreamWriter讀寫文本文件 單擊“寫文本文件”按鈕,則在當前文件夾的temp文件夾下建立一個文本文件txtFileName.txt,并寫入一行文本“李明 23”。單擊“讀文本文件”按鈕,則讀取文件內容并顯示在Label控件lblShow中。源程序:TextReaderWriter.aspx 45程序說明如果當前文件夾下的temp\txtFileName.txt不存在則新建文件,否則打開該文件,并以覆蓋方式寫入文件內容。如果要求添加內容到文件中則需要將代碼修改為如下形式: TextWriter sw = new StreamWriter(fileName, true); 46BinaryReader和BinaryWriter類用來讀寫二進制數據文件。BinaryWriter類將數據以其內部格式寫入文件,所以在讀取數據時需要使用不同的Read方法。例如可利用ReadString()方法讀取字符,而整數的讀取需要使用ReadInt32()方法 47實例14-6 使用BinaryReader和BinaryWriter讀寫二進制數據文件 單擊“寫二進制文件”按鈕,則在當前文件夾的temp文件夾下建立一個二進制文件binaryfile.bin,并寫入字符串“李明”和整數“23”。單擊“讀二進制文件”按鈕,則讀取binaryfile.bin文件內容并顯示在Label控件lblShow中。源程序:BinaryReaderWriter.aspx 程序說明:寫入的name值是字符串類型,age值是整型,所以在讀取數據時對應的使用了ReadString()和ReadInt32()方法。4814.2 文件上傳 在Web應用程序中經常需要上傳文件??丶﨔ileUpload為用戶提供了一種將文件上傳到Web服務器的簡便方法??丶﨔ileUpload在Web頁面上顯示為一個文本框和一個“瀏覽”按鈕。 在上傳文件時還可以限制文件的大小,在保存上傳的文件之前檢查其屬性等。 控件的PostedFile屬性可以獲取使用FileUpload控件上傳的文件HttpPostedFile對象。 49HttpPostedFile對象 屬性ContentLength:能獲取上傳文件的長度;屬性ContentType:能獲取上傳文件的MIME內容類型;屬性FileName:能獲取上傳文件的文件名稱。SaveAs()方法:將上傳的文件保存到Web服務器。 Uploader.PostedFile.SaveAs(@"c:\Uploads\newfileName"); 50文件保存到Web應用程序的指定文件夾 string uploadDirectory = Path.Combine(Request.PhysicalApplicationPath, "Uploads"); string serverFileName = Path.GetFileName(Uploader.PostedFile.FileName);string fullUploadPath = Path.Combine(uploadDirectory,serverFileName);Uploader.PostedFile.SaveAs(fullUploadPath); 51實例14-7 利用FileUpload實現文件上傳 本實例可以將文件上傳到網站根文件夾下的Uploads文件夾中。同時限制上傳文件的大小不能超過200KB,文件的擴展名必須為bmp、jpg或gif等的圖片文件。源程序:myUploadFile.aspx返回目錄5214.4 小結 利用DriveInfo類、Directory和DirectoryInfo類、File和FileInfo類、Path類等可以管理Web服務器上的文件系統。.NET Framework中采用基于Stream類和Reader/Writer類讀寫I/O數據的通用模型。利用FileUpload控件上傳文件到Web服務器的方法,利用控件的屬性PostedFile獲取的HttpPostedFile對象可以方便的限制上傳文件的大小,利用Path.GetExtension()方法獲取要上傳文件的擴展名來限制上傳文件的類型。返回目錄53
關 鍵 詞:
14 文件 網站 開發 全部 aspnet 處理
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:ASPNET網站開發全部課件第14章 文件處理.ppt
鏈接地址: http://www.476824.live/p-51617121.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 bbin挂机软件 星网锐捷股票行情 炒股开户流程 内蒙古11选5胆码玩法 吉林十一选五任五遗漏号码 四川金7采开奖结果 在线配资平台询问卓信宝配资 佳永配资平台下载 福建十一选五走势图一 内蒙11选5前按顺序出号