亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET文件操作

2019-11-14 15:46:06
字體:
來源:轉載
供稿:網友

  在開發Web程序時,不但有存儲在數據庫中和xml文件中的數據形式需要處理,而且還有很多諸如文本、Word文檔和圖片等格式的文件數據需要處理。尤其是在一些信息管理系統中,文檔的處理流程貫穿了整個系統的運行過程。

  文件的操作有很多種,如創建文件、復制文件、刪除文件等,這些都是文件最基本的操作,.NET框架提供了一個靜態類File來完成這些操作。

  文件的I/O操作是一個比較復雜的過程。在.NET框架下,文件的I/O操作方式都是基于流(Stream)的,由于引進了流的概念,程序員可以通過對一系列的通用對象進行操作,而不必關心該I/O操作是和本機的文件有關還是與網絡中的數據有關,這使得對于文件操作的編程變得非常簡單,這大大減輕了程序員的工作。

  .NET框架主要提供了一個System.IO命名空間,該命名空間基本包含了所有和I/O操作相關的類,因此在程序員開發文件操作的程序時需要引用該命名空間。

文件基本操作

  在.NET框架里文件的基本操作基本上都是由靜態類File來完成,File類提供了一系列的方法來完成這些操作。File類提供的方法如下:

    1.AppendText:創建一個StreamWriter,它將UTF-8編碼文本追加到現有文件。

    2.Copy:將現有文件復制到新文件。

    3.Create:在指定路徑中創建文件。

    4.CreateText:創建或打開一個文件用于寫入UTF-8編碼的文本。

    5.Delete:刪除指定的文件。如果指定的文件不存在,則不引發異常。

    6.Exists:確定指定的文件是否存在。

    7.Move:將指定的文件移到新位置,并提供指定新文件名的選項。

    8.Open:打開指定路徑上的FileStream。

    9.OpenRead:打開現有文件以進行讀取。

    10.OpenText:打開現有UTF-8編碼文本文件以進行讀取。

    11.OpenWrite:打開現有文件以進行寫入。

  創建文件。

    新建項目,添加頁面Default.aspx,在Default.aspx.cs中,在頭文件中引用命名空間:using System.IO;Page_Load事件中的代碼如下:

1         PRotected void Page_Load(object sender, EventArgs e)2         {3             StreamWriter streamWriter = File.CreateText(Server.MapPath("file1.txt"));4             streamWriter.Write("新創建的文件。");5             streamWriter.Close();6         }
View Code

    

      運行項目,在網站根目錄下創建一個file1.txt文件,文件內容為:新創建的文件。

    復制文件

      Page_Load事件中的代碼如下:

1         protected void Page_Load(object sender, EventArgs e)2         {3             if (File.Exists(Server.MapPath("file1.txt")))4             {5                 File.Copy(Server.MapPath("file1.txt"), Server.MapPath("file2.txt"));6             }7         }
View Code

    刪除文件

      Page_Load事件中的代碼如下:

1         protected void Page_Load(object sender, EventArgs e)2         {3             if (File.Exists(Server.MapPath("file2.txt")))4             {5                 File.Delete(Server.MapPath("file2.txt"));6             }7         }
View Code

文件的IO操作

  在.NET框架中,文件的I/O操作是基于流的,而Stream類是所有流的抽象基類。Stream類及其派生類提供這些不同類型的輸入和輸出的一般視圖,使程序員不必了解操作系統和基礎設備的具體細節。

  Stream類提供了對I/O操作的基本方法的定義,所有從該類派生出來的類,可以根據實際需要來實現相應的方法。

  Stream類提供的方法如下:

    1.BeginRead:開始異步讀操作。

    2.BeginWrite:開始異步寫操作。

    3.Close:關閉當前流并釋放與之相關聯的所有資源。

    4.EndRead:等待掛起的異步讀取完成。

    5.EndWriter:結束異步寫操作。

    6.Flush:當在派生類中重寫時,將清除該流的所有緩沖區,并使得所有緩沖區數據被寫入到基礎設備。

    7.Read:當在派生類中重寫時,從當前流讀取字節序列,或者如果已到達流的末尾,則返回-1。

    8.Seek:當在派生類中重寫時,設置當前流中的位置。

    9.SetLength:當在派生類中重寫時,設置當前流的長度。

    10.Writer:當在派生類中重寫時,向當前流中寫入字節序列,并將此流中的當前位置提升寫入的字結數。

    11.WriteByte:將一個字節寫入流內的當前位置,并將流內的位置向前推進一個字節。

  在.NET里面,由Stream派生出5種主要的流:

    1.FileStream:支持對文件的順序和隨機讀寫操作。

    2.MemoryStream:支持對內存緩沖區的順序和隨機讀寫操作。

    3.NETworkStream:支持對Internet網絡資源的順序和隨機讀寫操作,存在于System.Net.Sockets命名空間。

    4.CryptoStream:支持數據的編碼和解碼,存在于 System.Security.Cryptography 名稱空間。

    5.BufferedStream:支持緩沖式的讀寫。

    程序員可以根據自己的需要選擇相應的流來實現文件的I/O操作。 

  創建文件。

    新建項目,添加頁面Default.aspx,在Default.aspx.cs中,在頭文件中引用命名空間:using System.IO;;Page_Load事件中的代碼如下:

1         protected void Page_Load(object sender, EventArgs e)2         {3             string string1 = "使用流創建的文檔。";4             FileStream fileStream = new FileStream(Server.MapPath("file1.txt"), FileMode.OpenOrCreate);5             System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();6             fileStream.Write(encoding.GetBytes(string1), 0, encoding.GetByteCount(string1));7             fileStream.Close();8         }
View Code

    讀取文件

      Page_Load事件中的代碼如下:

 1         protected void Page_Load(object sender, EventArgs e) 2         { 3             FileStream fileStream = new FileStream(Server.MapPath("file1.txt"), FileMode.OpenOrCreate); 4             System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); 5             if (fileStream.Length != 0) 6             { 7                 Byte[] byte1 = new byte[fileStream.Length]; 8                 fileStream.Read(byte1, 0, Convert.ToInt32(fileStream.Length.ToString())); 9                 fileStream.Close();10                 Response.Write(encoding.GetString(byte1));11             }12         }
View Code

文件上傳

  asp.net提供了一個文件上傳控件(FileUpload控件),該控件可以讓用戶更方便地瀏覽和選擇用戶上傳的文件。該控件包含一個瀏覽按鈕和用于輸入文件名的文本框。只要用戶在文本框中輸入了完全限定的文件名,無論是直接輸入還是通過“瀏覽”按鈕選擇,都可以調用該控件的SaveAs方法把文件保存到服務器上。

  FileUpload控件提供了如下表所示的屬性:

    1.FileBytes:從使用FileUpload控件指定的文件中返回一個字節數組。

    2.FileContent:返回一個指向上傳文件的流對象。

    3.FileName:返回要上傳文件的名稱,不包含路徑信息。

    4.HasFile:指明該控件是否包含文件,返回true表明該控件有文件要上傳。

    5.PostedFile:返回已經上傳文件的引用,類型為HttpPostedFile.

  HttpPostedFile類的屬性如下:

    1.ContentLength:返回上傳文件的按字節表示的文件大小。

    2.ContentType:返回上傳文件的MIME內容類型。

    3.FileName:返回上傳文件在客戶端的完全限定名。

    4.InputStream:返回一個指向上傳文件的流對象。

  FileUpload控件提供了一個方法SaveAs,該方法用來把上傳的文件保存到服務器上的指定路徑。

  用戶使用FileUpload控件選擇要上傳的文件并提交頁面后,該文件作為請求的一部分上傳。文件將被完整地緩存在服務器內存中,文件完成上傳后,就要在服務器代碼中處理上傳的文件,可以按照以下三種方式來處理內存中的文件:

    1.作為在FileUpload控件的FileBytes屬性中公開的字節數組。

    2.作為在FileConten屬性中公開的流。

    3.作為PostedFile屬性中類型為HttpPostedFile的對象。

  在代碼運行時,可以檢查文件的特征,如文件的名稱、大小和MIME類型,然后保存該文件。在保存文件之前檢查文件的特征,可以把存在危害的文件忽略掉,以保證服務器的安全。

  文件上傳的處理步驟如下:

    1.向頁面添加FileUpload控件。

    2.在事件處理程序中,執行操作。

    3.檢測FileUpload控件的HasFile屬性。

    4.檢查該文件的文件名或MIME類型,以確保用戶上傳了服務器能接收的文件。

    5.保存文件。

  文件上傳

    新建項目,添加頁面Default.aspx,在頁面中添加如下代碼:

1     <div>2         <asp:FileUpload ID="FileUpload1" runat="server" />3         <asp:Button ID="Button1" runat="server" Text="上傳" OnClick="Button1_Click" />4         <br />5         <asp:Label ID="Label1" runat="server" />6     </div>
View Code

    Default.aspx.cs中的代碼如下:

 1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Web; 6 using System.Web.UI; 7 using System.Web.UI.WebControls; 8  9 namespace Webapplication210 {11     public partial class WebForm1 : System.Web.UI.Page12     {13         protected void Page_Load(object sender, EventArgs e)14         {15         }16 17         protected void Button1_Click(object sender, EventArgs e)18         {19             Boolean isOk = false;20             string filePath = Server.MapPath("~/UploadedFiles/Images/");21             if (FileUpload1.HasFile)22             {23                 string fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();24                 string[] allowedExtensions = { ".gif", ".png", ".jpeg", ".jpg", ".ico" };25                 for (int i = 0; i < allowedExtensions.Length; i++)26                 {27                     if (fileExtension.ToString () == allowedExtensions[i].ToString())28                     {29                         isOk = true;30                     }31                 }32             }33             if (isOk)34             {35                 try36                 {37                     FileUpload1.PostedFile.SaveAs(filePath + FileUpload1.FileName);38                     Label1.Text="文件上傳成功。";39                 }40                 catch (Exception ex)41                 {42                     Label1.Text="文件上傳失敗。";43                 }44             }45             else 46             {47                 Label1.Text="不支持的文件類型。";48             }49         }50     }51 }
View Code

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美在线视频免费播放| 国产精品一区电影| 欧美多人乱p欧美4p久久| 91丨九色丨国产在线| 国产精品电影在线观看| 久久香蕉国产线看观看网| 亚洲最大福利视频网| 亚洲第一视频网| 日本亚洲欧洲色α| 日韩美女在线观看| 国产色婷婷国产综合在线理论片a| zzjj国产精品一区二区| 日韩高清不卡av| 中文字幕欧美日韩精品| 日韩av网站在线| 久久精品色欧美aⅴ一区二区| 欧美大尺度在线观看| 日韩av在线电影网| 亚洲免费影视第一页| 久久夜色精品国产| 欧美成年人视频网站| 91精品国产成人| 欧美一级大片在线免费观看| 不卡av电影在线观看| 国产精品盗摄久久久| 亚洲国产精品电影在线观看| 欧美丝袜一区二区| 国产主播喷水一区二区| 国产第一区电影| 成人免费看吃奶视频网站| 久久久久久久影院| 国产美女久久精品香蕉69| 国产伊人精品在线| 日韩视频在线一区| 一区二区中文字幕| 91精品国产自产在线观看永久| 美女999久久久精品视频| 97人人爽人人喊人人模波多| 国产精品福利网| 中文字幕免费精品一区高清| 亚洲91精品在线| 欧美日韩成人网| 亚洲高清不卡av| 2019中文字幕在线免费观看| 国产精品1区2区在线观看| 色综合久久悠悠| 久久久久久久影视| 北条麻妃久久精品| 激情av一区二区| 国产伦精品一区二区三区精品视频| 国产精品美女久久久免费| 色婷婷av一区二区三区在线观看| 久久久久久久影视| 亚洲男人第一网站| 国产成人午夜视频网址| 久久精品久久精品亚洲人| 性欧美xxxx| 国产成人福利视频| 韩国美女主播一区| 亚洲精品国产品国语在线| 亚洲免费影视第一页| 55夜色66夜色国产精品视频| 国产精品扒开腿爽爽爽视频| 亚洲福利在线看| 富二代精品短视频| 国产精品久久久久久中文字| 欧美第一黄色网| 色噜噜亚洲精品中文字幕| 欧美激情精品久久久久久大尺度| 亚洲天堂网站在线观看视频| 九色精品免费永久在线| 欧美日韩中文字幕综合视频| 久久九九国产精品怡红院| 国产精品久久久久久久天堂| 国产成人综合久久| 国产精品亚洲美女av网站| 色综合伊人色综合网| 97**国产露脸精品国产| 成人性教育视频在线观看| 97碰碰碰免费色视频| 国产有码在线一区二区视频| 亚洲 日韩 国产第一| 国产精品69久久久久| 国产精品爽黄69天堂a| 亚洲永久在线观看| 精品调教chinesegay| 亚洲韩国青草视频| 久久久久久久久久久久av| 色阁综合伊人av| 亚洲欧美国产va在线影院| 国产精品国模在线| 亚洲免费福利视频| 国产精品av网站| 亚洲精品自拍第一页| 69av成年福利视频| 国产日韩在线视频| 日韩中文在线不卡| 国产一区二区丝袜| 欧美高跟鞋交xxxxxhd| 国产999在线观看| xvideos成人免费中文版| 日韩精品免费在线观看| 国产精品视频地址| 中文字幕免费精品一区| 久久久久国产精品免费网站| 欧美日韩成人在线播放| 国产一区二区三区毛片| 久久免费视频观看| 国产一区二区三区18| 欧美视频在线免费| 国内精品一区二区三区四区| 欧美亚洲成人网| 欧美激情一级精品国产| 欧美精品激情blacked18| 国产精品久久久久久久久久久久久久| 欧美贵妇videos办公室| **欧美日韩vr在线| 国产亚洲一区二区精品| 78m国产成人精品视频| 狠狠做深爱婷婷久久综合一区| 成人免费自拍视频| 欧美做爰性生交视频| 久久视频在线播放| 91免费视频网站| 国产精品亚洲片夜色在线| 国产午夜精品视频免费不卡69堂| 亚洲国产精品人久久电影| 亚洲精品有码在线| 国产mv免费观看入口亚洲| 亚洲精品国产成人| 91精品啪在线观看麻豆免费| 中文字幕精品一区二区精品| 色诱女教师一区二区三区| 亚洲黄在线观看| 欧美激情2020午夜免费观看| 日韩欧美亚洲范冰冰与中字| 亚洲欧美日韩国产中文| 国产精品com| 69影院欧美专区视频| 亚洲激情视频在线播放| www.久久久久久.com| 亚洲91精品在线| 国产精品一区二区久久| 色综合色综合久久综合频道88| 色综合天天综合网国产成人网| 国产精品美女午夜av| 亚洲aaa激情| 亚洲一区二区在线| 91人成网站www| 久久久亚洲影院| 播播国产欧美激情| 性亚洲最疯狂xxxx高清| 亚洲欧洲日韩国产| 午夜精品蜜臀一区二区三区免费| 国产精品a久久久久久| 中文字幕国产精品久久| 国模极品一区二区三区| 国产中文字幕亚洲| 韩国三级日本三级少妇99| 亚洲精品视频播放| 国产精品电影久久久久电影网| 91国产高清在线| 福利二区91精品bt7086| 国产欧美日韩专区发布|