資源描述:
《ASP.NET 4.0 Web程序設(shè)計(jì) 教學(xué)課件 作者 劉艷麗 張恒 第13章 文 件 操 作.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第13章文件操作本章主要內(nèi)容13.1文件的常用操作13.2文件夾的常用操作13.3讀寫文件13.4文件上傳與下載13.1文件的常用操作文件的常用操作有創(chuàng)建文件、復(fù)制文件、移動(dòng)文件、刪除文件及獲取文件的基本信息。File類提供了很多方法幫助完成這些操作,使用這些方法之前首先要導(dǎo)入命名空間System.IO。13.1.1創(chuàng)建文件在創(chuàng)建文件之前,要通過(guò)File類的Exists方法判斷文件是否存在。參數(shù)是文件的路徑,返回值是Boolean型。返回True說(shuō)明文件存在,返回False說(shuō)明文件不存在。創(chuàng)建文件實(shí)例請(qǐng)參考源代碼下ch
2、13_1網(wǎng)站中的CreateFile.aspx文件.13.1.2復(fù)制文件通過(guò)File類的Copy方法可以對(duì)文件進(jìn)行復(fù)制。Copy方法有兩個(gè)參數(shù),第一個(gè)參數(shù)是源文件的路徑及文件名,第二個(gè)參數(shù)是目標(biāo)文件的名稱,它不能是一個(gè)目錄或現(xiàn)有文件。復(fù)制文件實(shí)例請(qǐng)參考源代碼下ch13_1網(wǎng)站中的CopyFile.aspx文件.13.1.3刪除文件File類的Delete方法可以用來(lái)刪除文件。參數(shù)是要?jiǎng)h除文件的路徑及文件名。參數(shù)允許使用相對(duì)路徑。刪除文件實(shí)例請(qǐng)參考源代碼下ch13_1網(wǎng)站中的DeleteFile.aspx文件.13.1.
3、4移動(dòng)文件通過(guò)File類的Move方法可以移動(dòng)文件。Move方法有兩個(gè)參數(shù),第一個(gè)參數(shù)是要移動(dòng)文件的路徑及文件名,第二個(gè)參數(shù)是文件新路徑。移動(dòng)文件實(shí)例請(qǐng)參考源代碼下ch13_1網(wǎng)站中的MoveFile.aspx文件。13.2文件夾的常用操作13.2.1創(chuàng)建文件夾在創(chuàng)建文件夾之前,要通過(guò)DirectoryInfo類的Exists方法判斷文件夾是否存在。參數(shù)是文件的路徑,返回值是Boolean型。返回True說(shuō)明文件夾存在,返回False說(shuō)明文件夾不存在。創(chuàng)建文件夾實(shí)例請(qǐng)參考源代碼下ch13_2網(wǎng)站中的CreateFold
4、er.aspx文件。13.2.2移動(dòng)文件夾通過(guò)DirectoryInfo類的MoveTo方法可以方便地對(duì)文件夾進(jìn)行移動(dòng)。在移動(dòng)的過(guò)程中會(huì)將目錄及其內(nèi)容一起移動(dòng),第一個(gè)參數(shù)是要移動(dòng)的文件或目錄的路徑,第二個(gè)參數(shù)是文件夾的新路徑。移動(dòng)文件夾實(shí)例請(qǐng)參考源代碼下ch13_2網(wǎng)站中的MoveFolder.aspx文件。13.2.3刪除文件夾DirectoryInfo類的Delete方法可以用來(lái)刪除文件夾,參數(shù)是要?jiǎng)h除的文件夾的路徑。以下實(shí)例演示如何通過(guò)DirectoryInfo類的Delete方法來(lái)刪除文件夾。刪除文件夾實(shí)例請(qǐng)參
5、考源代碼下ch13_2網(wǎng)站中的DeleteFolder.aspx文件。13.2.4遍歷文件夾中的文件遍歷一個(gè)文件夾中的文件,需要用到DirectoryInfo類中的一個(gè)重要的方法GetFileSystemInfos(),此方法返回與指定搜索條件相匹配的文件和子目錄的強(qiáng)類型FileSystemInfo對(duì)象的數(shù)組。遍歷文件夾中的文件實(shí)例請(qǐng)參考源代碼下ch13_2網(wǎng)站中的ForeachFolder.aspx文件。13.3讀寫文件圖13-6讀寫文件整體框架13.3.1Stream類在.NET中讀寫數(shù)據(jù)都使用數(shù)據(jù)流的形式實(shí)現(xiàn),S
6、tream類為I/O數(shù)據(jù)讀寫提供了基本的功能。因?yàn)镾tream類是一個(gè)抽象類,所以要使用它的派生類完成不同數(shù)據(jù)流的操作。例如,MemoryStream類實(shí)現(xiàn)內(nèi)存操作,F(xiàn)ileStream類實(shí)現(xiàn)文件操作等。1.FileStream類的常用屬性和方法屬性說(shuō)明CanRead當(dāng)前數(shù)據(jù)流是否支持讀取CanWrite當(dāng)前數(shù)據(jù)流是否支持寫入Length數(shù)據(jù)流長(zhǎng)度(用字節(jié)表示)Name獲取傳遞給構(gòu)造函數(shù)的FileStream的名稱ReadTimeout獲取或設(shè)置一個(gè)值(以ms為單位),確定數(shù)據(jù)流在超時(shí)前嘗試的讀取時(shí)間WriteTime
7、out獲取或設(shè)置一個(gè)值(以ms為單位),確定數(shù)據(jù)流在超時(shí)前嘗試的寫入時(shí)間FileStream類的常用方法Read()和Write()實(shí)現(xiàn)對(duì)文件的同步讀寫操作。BeginRead()、EndRead()方法和BeginWrite()、EndWrite()方法實(shí)現(xiàn)對(duì)文件的異步讀寫操作。異步寫文件時(shí)需要利用Lock()、UnLock()方法解決文件共享沖突問(wèn)題。2.利用FileStream類讀取文件的基本流程//獲取文件物理路徑stringfileName=Server.MapPath("test.txt");//建立Fil
8、eStream類對(duì)象實(shí)例fs,文件存在則打開,不存在則創(chuàng)建FileStreamfs=newFileStream(fileName,FileMode.OpenOrCreate);//定義字節(jié)數(shù)組data,數(shù)組長(zhǎng)度為文件長(zhǎng)度byte[]data=newbyte[fs.Length];//讀取文件內(nèi)容到數(shù)組datafs.Read(dat