第5章 .NET框架类 5.

Slides:



Advertisements
Similar presentations
7.1 内置对象概述及分类 JSP 视频教学课程. JSP2.2 目录 1. 内置对象简介 1. 内置对象简介 2. 内置对象分类 2. 内置对象分类 3. 内置对象按功能区分 3. 内置对象按功能区分 4. 内置对象作用范围 4. 内置对象作用范围.
Advertisements

第15章 文件处理技术 变量和数组只能临时存储数据,且数据量很小, 当应用程序终止,数据就会丢失。如果需要将数 据长期存储或者存储大量数据,就需要用到文件。 文件维护的数据通常称为持久数据,存储在计算 机的辅助存储设备中,如磁盘、光盘等。许多程 序都要与外部数据进行交互,如数据库、XML,甚 至文本文件,因此文件操作是软件开发中必不可.
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
第13章 FTP檔案上傳、 自動傳送 報告人 M9153314 李育旻.
2.3 网络域名及其管理.
中国公务员制度 主讲:吴春华 教授 温志强 副教授.
第13章多项目设计与开发.
《ASP.NET数据库网站设计教程(C#版)》
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
目标 运用File类进行文件操作 理解流,标准输入/输出流的概念
在PHP和MYSQL中实现完美的中文显示
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.
《ASP.NET数据库网站设计教程(C#版)》
Web Part與 個人化網頁製作 資策會教育訓練處 王寧疆 MCAD.NET/MCSD.NET/MCT
Ch11 檔案上傳及電子郵件 WEB程式設計.
ASP.NET 網頁製作教本 – 從基本語法學起
Signutil.
Hadoop I/O By ShiChaojie.
在 Web 应用中,导航是非常重要的。ASP
第14章 建立網路應用程式 14-1 瀏覽器的建立 14-2 檔案下載器 14-3 寄送電子郵件 14-4 檢查POP 3的電子郵件.
第十三章 文件和注册表操作.
第六章 目录与文件管理 6.1 目录管理 6.2 文件管理 6.3 文件的读写.
第6章 ADO.NET数据访问接口 6.
Visual Studio IDE基本操作 建國科技大學 資管系 饒瑞佶.
ASP.NET 網頁製作教本 – 從基本語法學起
C#程序设计 c# programming GDI+绘图 C#程序设计课程组.
大学计算机基础 典型案例之一 构建FPT服务器.
讲课人:王璞 浙江工商职业技术学院.
第9章 基于XML的.NET Web服务 9.
第14章 伺服器檔案、電子郵件處理與Ajax 14-1 資料夾與檔案操作 14-2 文字檔案的讀寫 14-3 電子郵件與附檔處理
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
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 伺服器的資料夾與檔案操作
第5章 .NET框架类 5.
第4章 使用验证控件.
主 讲 教 师:陆有军 Web技术与应用 第四章 内部对象 主 讲 教 师:陆有军
第 十二 章 C# 中的文件处理.
第5章 文件I/O操作   管理和读写文件信息的功能将使得应用程序的用途更多,利用C#语言编程能很容易实现这些操作。本章详细介绍了C#语言为我们提供的多个可以用于文件I/O操作的类及其使用方法。另外,流也是本章需要理解的一个重要概念,通过它对文件读写更加灵活方便。
第12章 文件操作 12.1 文件和System.IO模型概述 12.2 System.IO模型 12.3 文件夹和文件操作
第3章 ASP.NET程序设计基础 3.
第四章 附件 (应用程序软件包).
P2P聊天工具.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
第18章 個人入口網站的建立 18-1入口網站的基礎 18-2 建立網站的搜尋引擎 18-3 網頁組件的個人化功能
電子郵件簡介.
C# 基本語法、變數.
一個基於Web Service的 洪氾預警系統
1 Session对象的特性 Session 状态对象 Session 对象常用的方法有: Session 对象常用的属性有:
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
向导控件的样式 当创建了一个向导控件时,系统会自动生成向导控件的 HTML 代码,示例代码如下所示。
第1章 ASP.NET基础.
本节内容 Win32 API中的宽字符 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
iSIGHT 基本培训 使用 Excel的栅栏问题
3.16 枚举算法及其程序实现 ——数组的作用.
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
常见的网络交流方式 QQ、MSN 电子邮件 BBS类(电子公告栏) 聊天室类 网络电话 博客 ……
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Python 环境搭建 基于Anaconda和VSCode.
_08文件操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
武汉大学博硕士学位论文 提交过程演示 武汉大学图书馆
第四章 UNIX文件系统.
openFileDialog1.ShowDialog() 對話匣
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
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端口是否开放?(上机完成)