第5章 .NET框架类 5.

Slides:



Advertisements
Similar presentations
第15章 文件处理技术 变量和数组只能临时存储数据,且数据量很小, 当应用程序终止,数据就会丢失。如果需要将数 据长期存储或者存储大量数据,就需要用到文件。 文件维护的数据通常称为持久数据,存储在计算 机的辅助存储设备中,如磁盘、光盘等。许多程 序都要与外部数据进行交互,如数据库、XML,甚 至文本文件,因此文件操作是软件开发中必不可.
Advertisements

童詩教學 爬格子工作坊 互動過程 童詩教學法 教學教案 相關資源 心得 林士翔
計算機程式及實習 期末報告 題目:商店結帳系統
我們的心得與感謝 郭至中 陳奕叡 黃澤璽 陳劭濬 賴士杰 張文源 向恩霖 史瑞晨 鄭賢杰 王翎 曠 耘 黃誼欣 張語倢 鍾巧薇 徐培芝
营 改 增 政 策 交 流 烟台市国家税务局.
Task #3 使用ASP.NET服务器控件创建页面.
审计案例研究 第一讲 辅导教师 周桂芝.
二十世纪外国文学专题 章丘电大 李颜.
第7章 C#函數與.NET Framework類別函數庫
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
第13章 FTP檔案上傳、 自動傳送 報告人 M9153314 李育旻.
中国公务员制度 主讲:吴春华 教授 温志强 副教授.
CH09.
第13章多项目设计与开发.
《ASP.NET数据库网站设计教程(C#版)》
類別與物件 Class & Object.
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
《ASP.NET数据库网站设计教程(C#版)》
Web Part與 個人化網頁製作 資策會教育訓練處 王寧疆 MCAD.NET/MCSD.NET/MCT
Ch11 檔案上傳及電子郵件 WEB程式設計.
ASP.NET 網頁製作教本 – 從基本語法學起
在 Web 应用中,导航是非常重要的。ASP
项目五 窗体上绘图 任务列表: 1、在窗体上绘制各种基本图形 2、在窗体上绘制文本.
第14章 建立網路應用程式 14-1 瀏覽器的建立 14-2 檔案下載器 14-3 寄送電子郵件 14-4 檢查POP 3的電子郵件.
第十三章 文件和注册表操作.
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
ASP.NET 網頁製作教本 – 從基本語法學起
第一章 Visual Studio、SQL Server介紹與開發環境
C#程序设计 c# programming 网络编程 C#程序设计课程组.
第6章 ADO.NET数据访问接口 6.
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
第7章 ADO.NET操作SQL Server数据库
ASP.NET 網頁製作教本 – 從基本語法學起
C#程序设计 c# programming GDI+绘图 C#程序设计课程组.
讲课人:王璞 浙江工商职业技术学院.
第14章 伺服器檔案、電子郵件處理與Ajax 14-1 資料夾與檔案操作 14-2 文字檔案的讀寫 14-3 電子郵件與附檔處理
ASP.net 企业级应用开发 信息工程系:罗明刚.
form1 卡拉OK pictureBox1 fish1.bmp pictureBox2 fish2.bmp label1 卡拉OK字幕機
ASP.NET 網頁製作教本 – 從基本語法學起
文件流. 文件流 文件流 Stream FileStream BufferedStream MemoryStream NetworkStream …… 所有流的抽象 Stream FileStream BufferedStream MemoryStream NetworkStream ……
第7章 Web伺服器檔案與XML文件的處理 7-1 System.IO名稱空間的基礎 7-2 伺服器的資料夾與檔案操作
模板调整技巧.
快递单模板的制作.
第十二章 SQL語言簡介 講授大綱: 新增資料庫 新增資料表 新增資料 修改資料 刪除資料 查詢資料 透視ASP.NET-第12章
第4章 使用验证控件.
主 讲 教 师:陆有军 Web技术与应用 第四章 内部对象 主 讲 教 师:陆有军
Windows Form绘图类及其简介.
例外處理與 物件序列化(Exception Handling and Serialization of Objects)
檔案讀寫與例外處理 (File IO and Exception Handling)
第 十二 章 C# 中的文件处理.
第5章 .NET框架类 5.
第3章 ASP.NET程序设计基础 3.
P2P聊天工具.
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
订单打印模板调整技巧.
第4章 ASP.NET的HTTP物件、輸出入與Cookie處理
WalkThrough SharePoint WebPart 入门指南 三
第18章 個人入口網站的建立 18-1入口網站的基礎 18-2 建立網站的搜尋引擎 18-3 網頁組件的個人化功能
普通高速模板的制作与调整.
C# 基本語法、變數.
一個基於Web Service的 洪氾預警系統
1 Session对象的特性 Session 状态对象 Session 对象常用的方法有: Session 对象常用的属性有:
向导控件的样式 当创建了一个向导控件时,系统会自动生成向导控件的 HTML 代码,示例代码如下所示。
第1章 ASP.NET基础.
教师: 习长新 com 概率论与数理统计 教师: 习长新 com.
MenuStrip by Szeto CY Visual C# 2008.
武汉大学博硕士学位论文 提交过程演示 武汉大学图书馆
C#快速導讀 流程控制.
openFileDialog1.ShowDialog() 對話匣
Presentation transcript:

第5章 .NET框架类 5

内容提要 本章介绍常用的.NET框架类。 使用System.IO命名空间进行文件系统处理 使用System.Drawing命名空间绘制图形,利用System.Web.Security实现加密等等。

System.IO命名空间操作文件系统 System.IO命名空间提供了许多用于数据文件和数据流进行读写操作的类。包括的类如表5-1所示。 说明 Directory 提供的方法为静态方法,用于创建、移动和读取目录。 DirectoryInfo 提供的方法必须创建该类的实例,才能使用。用于创建、移动和读取目录。 File 提供创建、复制、删除、移动和打开文件的静态方法。 FileInfo 提供创建、复制、删除、移动和打开文件的实例方法。 FileStream 以文件为主的 Stream,既支持同步读写操作,也支持异步读写操作。 StreamReader 实现一个TextReader,以一种特定的编码从字节流中读取字符。 StreamWriter 实现一个 TextWriter,以一种特定的编码向流中写入字符。 TextReader 可读取连续字符的对象。 TextWriter 可写入连续字符的对象。该类为抽象类。

对文件进行操作 案例名称:创建一个有内容的文本文件 程序名称:5-01.aspx   <% @ Page Language="C#" %> <% @ Import Namespace="System.IO" %> <Script Runat="Server"> public void Page_Load(Object src,EventArgs e){ //建立StreamWrite StreamWriter rw = File.CreateText(Server.MapPath(".")+"\\myText.txt"); rw.WriteLine("热爱祖国"); //使用WriteLine写入内容 rw.WriteLine("热爱人民"); rw.Flush(); //将缓冲区的内容写入文件 rw.Close(); //关闭rw对象 //打开文本文件 StreamReader sr = File.OpenText(Server.MapPath(".")+"\\myText.txt"); StringBuilder output = new StringBuilder(); string rl; while((rl=sr.ReadLine())!=null) { output.Append(rl+"<br>"); } lblFile.Text = output.ToString(); sr.Close(); </script> <form runat="server"> <b>创建文本文件成功,写入成功,文件的内容为:</b> <p><asp:Label id="lblFile" runat="server" /> </p></form>

追加文本文件 案例名称:追加文本文件 程序名称:5-02.aspx <% @ Page Language="C#" %>   <% @ Page Language="C#" %> <% @ Import Namespace="System.IO" %> <Script Runat="Server"> public void Page_Load(Object src,EventArgs e){ StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw.WriteLine("热爱祖国"); //使用WriteLine写入内容 sw.WriteLine("热爱人民"); sw.Flush(); //将缓冲区的内容写入文件 sw.Close(); //关闭sw对象 //打开文本文件 StreamReader sr = File.OpenText(Server.MapPath(".")+"\\myText.txt"); StringBuilder output = new StringBuilder(); string rl; while((rl=sr.ReadLine())!=null) { output.Append(rl+"<br>"); } lblFile.Text = output.ToString(); sr.Close(); </script> <form runat="server"> <b>读取文本文件成功</b> <p><asp:Label id="lblFile" runat="server" /> </p></form>

文本文件的拷贝 拷贝文件利用File对象的Copy方法 该方法使用格式为:“File.Copy(OrignFile,NewFile,true)”,参数true的意思是如果目标文件存在就覆盖。

文本文件的拷贝 案例名称:文本文件的拷贝 程序名称:5-03.aspx <% @ Page Language="C#" %>   <% @ Page Language="C#" %> <% @ Import Namespace="System.IO" %> <Script Runat="Server"> public void Page_Load(Object src,EventArgs e){ string OrignFile,NewFile; OrignFile = Server.MapPath(".")+"\\myText.txt"; NewFile = Server.MapPath(".")+"\\myTextCopy.txt"; //拷贝文件 try { File.Copy(OrignFile,NewFile,true); if(File.Exists(NewFile)) { FileInfo fi = new FileInfo(NewFile); DateTime Ctime = fi.CreationTime; lblEToFile.Text = NewFile + "<br>创建时间:" + Ctime.ToString() + "<br>"; } else { lblEToFile.Text = NewFile + "不存在<br>";} catch(Exception ee) { lblError.Text = "不能拷贝文件"; </script> <b>拷贝文件操作完毕</b><br> <form runat="server"><p> </p><asp:Label id="lblEToFile" runat="server" /><p> </p><asp:Label id="lblError" runat="server" /> </form>

删除文件 案例名称:删除文件 程序名称:5-04.aspx <% @ Page Language="C#" %>   <% @ Page Language="C#" %> <% @ Import Namespace="System.IO" %> <Script Runat="Server"> public void Page_Load(Object src,EventArgs e){ //首先判断文件是否存在 string delFile = Server.MapPath(".")+"\\myTextCopy.txt"; try{ //删除文件 File.Delete(delFile); Label lblOk = new Label(); lblOk.Text = "删除文件"+delFile+"成功"; plShow.Controls.Add(lblOk); } catch(Exception ee){ //捕捉异常 Label lblFileExists = new Label(); lblFileExists.Text = "不能删除文件"+delFile+"<br>"; plShow.Controls.Add(lblFileExists); </script> <form runat="server"> <b>删除文件操作的结果为</b><p> <asp:Panel id="plShow" runat="server" Font-Name="Arial"/> </form>

移动文件 案例名称:移动文件 程序名称:5-05.aspx <% @ Page Language="C#" %>   <% @ Page Language="C#" %> <% @ Import Namespace="System.IO" %> <Script Runat="Server"> public void Page_Load(Object src,EventArgs e){ string OrignFile,NewFile; OrignFile = Server.MapPath(".")+"\\myText.txt"; NewFile = Server.MapPath(".")+"\\myTextCopy.txt"; try { //移动文件 File.Move(OrignFile,NewFile); lblError.Text = "移动文件成功"; } catch(Exception ee) { lblError.Text = "不能移动文件"; </script> <body><b>移动文件操作结果为:</b><br> <form runat="server"> <asp:Label id="lblError" runat="server" /> </form>

对文件夹进行操作 对文件夹操作利用System.IO.Directory和System.IO.DirectoryInfo类。Directory类提供了用于创建、删除、移动和浏览目录和子目录的各种方法,这些方法都是静态的。 类似Directory类,DirectoryInfo也提供了用于创建、删除、移动和浏览目录及子目录的各种方法,提供的方法都是非静态方法,不能按照类名DirectoryInfo进行访问,而必须通过DirectoryInfo的实例进行访问。创建的文件夹操作包括创建和删除,如程序5-06.aspx所示。

操作文件夹 案例名称:操作文件夹 程序名称:5-06.aspx <% @ Page Language="C#" %>   <% @ Page Language="C#" %> <% @ Import Namespace="System.IO" %> <Script Runat="Server"> public void Page_Load(Object src,EventArgs e){ // 创建目录c:\first DirectoryInfo d=Directory.CreateDirectory("c:\\first"); // d1指向c:\first\first1 DirectoryInfo d1=d.CreateSubdirectory("first1"); // d2指向c:\first\first1\first1_1 DirectoryInfo d2=d1.CreateSubdirectory("first1_1"); // 将当前目录设为c:\first Directory.SetCurrentDirectory("c:\\first"); // 创建目录c:\first\first2 Directory.CreateDirectory("first2"); // 创建目录c:\first\first2\first2_1 Directory.CreateDirectory("first2\\first2_1"); } </script>

使用System.Drawing命名空间 System.Drawing命名空间提供了对GDI+基本图形功能的访问。 在 System.Drawing.Drawing2D、System.Drawing.Imaging 以及 System.Drawing.Text 命名空间中提供了相关的绘图功能。

GDI+介绍 GDI(Graphics Device Interface.,图形设备接口)提供了对各种图形绘制的支持。 GDI+是对GDI的改进,也是.NET框架结构的重要组成部分。和GDI一样,提供对二维图形图像和文字排版处理的支持。

使用System.Drawing画图 在页面中引入命名空间System.Drawing的语法是: “<%@ Import namespace="System.Drawing"%>” 要动态的输出jpeg图像,在页面声明的时候,需要声明为: “<%@ Page Language="C#" ContentType="image/jpeg" %>”

使用System.Drawing画图 案例名称:使用System.Drawing画图 程序名称:5-08.aspx   <%@ Page Language="C#" ContentType="image/jpeg" %> <%@ Import namespace="System.Drawing"%> <script runat="server"> void Page_Load(object sender,EventArgs e) { Bitmap image=new Bitmap(350,200); Graphics g=Graphics.FromImage(image); g.Clear(Color.White); Rectangle outline=new Rectangle(10,5,300,100); g.DrawEllipse(new Pen(Color.Black,8.0f),outline); g.FillPie(new SolidBrush(Color.Red),outline,-20f,120f); g.FillPie(new SolidBrush(Color.Yellow),outline,100f,120f); g.FillPie(new SolidBrush(Color.Blue),outline,220f,100f); g.FillPie(new SolidBrush(Color.Green),outline,320f,40f); image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); } </script>

ASP.NET中的字符加密 案例名称:ASP.NET中字符串的加密 程序名称:5-09.aspx   <% @ Page Language="C#" %> <%@ Import Namespace="System.Web.Security" %> <script language="C#" runat="server"> void Page_Load(object sender,EventArgs e) { string s1="We are happy!"; Response.Write("字符串We are happy!经过sha1加密后为:<br>"); string s2 = System.Web.Security.FormsAuthentication .HashPasswordForStoringInConfigFile( s1 , "sha1"); Response.Write(s2); Response.Write("<br>"); string s3="shizhiguo"; Response.Write("字符串We are happy!经过md5加密后为:<br>"); string s4 = System.Web.Security.FormsAuthentication .HashPasswordForStoringInConfigFile( s3 , "md5"); Response.Write(s4); } </script>

发送需要服务器端验证的Email 案例名称:发送电子邮件 程序名称:5-10.aspx   <%@page language="C#" %> <%@Import Namespace="System.Web.Mail" %> <Script language="C#" runat="server"> private void Page_Load(object sender, System.EventArgs e){ MailMessage mail = new MailMessage(); mail.To = "shizhiguo@tom.com";//收件人地址 mail.From = "shizhiguo@tom.com";//发件人地址 mail.Subject = "邮件标题"; mail.Body = "邮件内容"; //设置需要服务器端验证 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //验证的用户名 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername","用户名"); //验证的密码 mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "密码"); //发送邮件的SMTP服务器地址 SmtpMail.SmtpServer = "SMTP服务器地址"; SmtpMail.Send( mail ); Response.Write("发送成功!"); } </Script>

邮 箱 后 缀 Smtp地址 21cn.com smtp.21cn.com sina.com smtp.sina.com.cn 163.net smtp.163.net 163.com smtp.163.com fm365.com mail.fm365.com 263.net smtp.263.net

使用.NET外部组件发送Email 使用组件本质上是利用Socket直接和SMTP服务器进行交互,可以在ASP中使用的电子邮件组件,也可以在ASP.NET中使用。 比如Jmail组件等。在.NET中,目前最常用的电子邮件组件是用C#写的openSmtp组件。

使用组件发送电子邮件 案例名称:使用组件发送电子邮件 程序名称:5-11.aspx   <%@page language="C#" %> <%@ Import Namespace="OpenSmtp.Mail" %> <script runat="server"> private void Page_Load(object sender, System.EventArgs e){ try { MailMessage msg = new MailMessage("发送人地址", "接收人地址"); msg.Charset = "GB2312"; msg.Subject = "smtp组件发送邮件"; msg.Body = "邮件内容"; Smtp smtp = new Smtp("SMTP服务器地址", //SMTP地址 "用户名", //验证的用户名 "密码"); //密码 smtp.SendMail(msg); Response.Write("邮件发送成功!"); } catch(Exception ex) { System.Console.WriteLine("Error occured: " + ex.Message + "r\n" + ex); </script>

使用System.Net命名空间 案例名称:利用机器名查找该站点的IP地址 程序名称:5-12.aspx   <%@Page Language="C#"%> <%@Import NameSpace="System.Net"%> <script runat=server> protected void mybuttonClick(Object Src, EventArgs E){ IPHostEntry hostInfo = Dns.GetHostByName(txtDomain.Text); showmsg.Text=hostInfo.AddressList[0].ToString(); } </script> <asp:Label runat=server id=showmsg/> <form runat=server> 请输入域名:<asp:TextBox runat=server id=txtDomain/> <asp:Button runat=server id=mybutton Text="确定" onClick=mybuttonClick/> </form>

利用IP地址查找该站点的机器名 案例名称:利用IP地址查找该站点的机器名 程序名称:5-13.aspx   <%@Page Language="C#"%> <%@Import NameSpace="System.Net"%> <script language="C#" runat=server> protected void mybuttonClick(Object Src, EventArgs E){ IPHostEntry hostInfo = Dns.GetHostByAddress(txtIP.Text); showmsg.Text=hostInfo.HostName; } </script> <asp:Label runat=server id=showmsg/> <form runat=server> 要查找的IP地址:<asp:TextBox runat=server id=txtIP/> <asp:Button runat=server id=mybutton Text="查找" onClick=mybuttonClick /> </form>

小结 本章对框架的部分类做了介绍。着重介绍了使用System.IO操作文件和目录 介绍了使用System.Drawing实现图形的绘制,使用System.web.Security进行字符的加密 使用System.web.Mail类进行电子邮件处理,使用System.Net命名空间对网络进行操作。

本章习题 5-1 Directory和DirectoryInfo类有什么区别和联系? 5-2 如何创建一个文本文件,并写入一些字符串?(上机完成) 5-3 GDI+是什么?有什么功能? 5-4 ASP.NET中如何实现字符的加密?(上机完成) 5-5 如何使用ASP.NET发送电子邮件?(上机完成) 5-6 如何检测服务器的80端口是否开放?(上机完成)