《ASP.NET 程序设计案例教程 教学课件 ppt 作者 郭力子 第8章ASP.NET中的文件处理和电子邮件》由会员分享,可在线阅读,更多相关《ASP.NET 程序设计案例教程 教学课件 ppt 作者 郭力子 第8章ASP.NET中的文件处理和电子邮件(27页珍藏版)》请在金锄头文库上搜索。
1、2019年5月21日,第1页,第8章 ASP.NET中的文件处理和电子邮件,ASP.NET程序设计案例教程,2019年5月21日,第2页,教学目标,实现常用文件的访问 了解文件及文件夹的管理 发送电子邮件,2019年5月21日,第3页,本章要点,在ASP.NET中访问文件系统 利用DataSet对象访问XML文件 在ASP.NET中发送电子邮件,2019年5月21日,第4页,8.1访问文件系统,访问文件系统的有关类 创建和读取文本文件 复制和删除文本文件 创建和读取二进制文件 显示目录和路径,2019年5月21日,第5页,访问文件系统的有关类,位于System.IO命名空间中,处理文件和目录的
2、所有类,可以粗略地分为三类: 处理目录的类、 处理文件的类 处理流(Stream)的类。 文件系统的处理主要采用File、Directory类以及FileInfo和DirectoryInfo类的一些常用方法。前两种类为静态类,可以直接使用其中的方法而不需将该类实例化。,2019年5月21日,第6页,1.使用DirectoryInfo(或Directory)对象,可以获取文件夹的大小等各种信息。 语法: Dim Directory对象实例 As New Directory (文件物理路径) 2. 使用FileInfo(或File)对象,可以获取文件大小等各种信息。 语法: Dim FileInf
3、o对象实例 As New FileInfo (文件物理路径) 3. 使用FileStream对象,用来表示基于字节的文件流。可以对文件系统上的文件进行读取、写入、打开和关闭操作。 语法: Dim FileStream对象实例 As New FileStream (文件物理路径) 4. 使用StreamReader和StreamWriter对象主要是用于文本文件的读写操作。,访问文件系统,2019年5月21日,第7页,8.1.1创建和读取文本文件,读写文本文作的常规方法是用File类的一个静态方法返回一个适当的流: 写入文件,应该使用StreamWriter类的实例: 可采用File类的Crea
4、teText方法,返回一个StreamWriter。再使用其write方法,将文本到文件中 读取文件,应该使用StreamReader类的实例: 可采用File类的OpenText方法,返回一个StreamReader;再使用其ReadLine方法从流(Stream)中获取每行文本,2019年5月21日,第8页,1. 写入文本文件,例如: Dim MyStreamWriter As StreamWriter MyStreamWriter = File.CreateText( MapPath( “myFile.txt“ ) ) MyStreamWriter.WriteLine( txtInput
5、.Text ),2019年5月21日,第9页,2. 读取文本文件,例如: Dim MyStreamReader As StreamReader MyStreamReader = File.OpenText( MapPath( “myFile.txt“ ) ) Dim strInput as String= MyStreamReader.ReadLine(),2019年5月21日,第10页,8.1.2复制和删除文本文件,如需要对文件进行复制拷贝和删除,则需要使用FileInfo类。例如: Dim fi1,fi2 as FileInfo fi1= new FileInfo(path1) fi2=
6、new FileInfo(path2) 复制文件前,先确认源文件和目标文件是否存在。然后根据两个文件所在路径构建FileInfo对象的实例并进行复制操作。例如: fi1.Exists(path1)=ture fi2.Exists(path2)=false fi1.CopyTo (path2) 删除操作也是通过指向文件实际路径的FileInfo对象的实例来完成。,2019年5月21日,第11页,8.1.3创建和读取二进制文件,写入二进制文件的一般步骤: (1) 首先创建FileStream类的实例。同时提供二进制文件的路径和FileMode: MyFileStream=New FileStrea
7、m(MapPath( “myFile.Data“ ), FileMode.Create) (2) 使用FileStream类的实例初始化BinaryWriter: MyBinaryWriter=New BinaryWriter (MyFileStream) (3) 使用Write方法写入整数、布尔值、字符或字节到二进制文件,2019年5月21日,第12页,读取二进制文件的一般步骤: (1)与写入二进制文件的步骤相似,只需将BinaryWriter改为BinaryReader即可 (2)采用BinaryReader的 ReadInt32方法、ReadByte方法、ReadBoolean方法读出不
8、同数据,读取二进制文件,2019年5月21日,第13页,8.1.4显示目录和路径,在System.IO命名空间中。处理目录或文件夹的类主要有两个 (1) Directory类包含用于创建、删除、移动和浏览目录及子目录内容的各种静态方法。该类的方法都是静态方法,使用其方法之前不需实例化这个类。 (2) DirectoryInfo类包含用于创建、删除、移动和浏览目录及子目录内容的实例方法。该类的方法都是实例化方法,必须在使用之前实例化这个类。 使用DirectoryInfo(或Directory)对象,获取文件夹大小等各种信息 使用FileInfo(或File)对象,获取文件大小等各种信息,201
9、9年5月21日,第14页,FileInfo常用属性和方法,2019年5月21日,第15页,DirectoryInfo对象常用的属性和方法,2019年5月21日,第16页,返回指定目录下所有文件的列表,方法: 采用文本框接受指定目录,采用DataGrid显示指定目录下的文件夹和文件信息。 分别使用DirectoryInfo 对象和fileInfo对象获取文件夹和文件夹内文件的各种信息。 由于不同文件目录下的文件数量的不同,需要根据文件数量动态生成表格来显示文件信息。文件的信息由DirectoryInfo对象的GetFiles方法获得。 将由GetFiles方法获得的DirectoryInfo对象
10、的属性作为数据控件DataGrid的数据源,并实行数据绑定后在页面上显示。,2019年5月21日,第17页,8.1.5文件目录的创建、移动和删除,使用Directory(或DirectoryInfo)的方法可以完成对文件目录的操作。 CreateDirectory (DirPath) Move(DirPath1,DirPath2) Delete(DirPath) Exists(DirPath) GetDirectories(DirPath) GetFiles(DirPath),2019年5月21日,第18页,8.2在ASP.NET中操作XML文件,XML文件的创建 在ASP.NET中读写XML
11、文件,2019年5月21日,第19页,8.2.1 XML文件的创建,XML是一种可扩展的标记语言,是一种提供数据描述格式的标记语言。用户可以定义需要的标记 XML是.NET框架中各种数据交换的标准格式 .NET使用System.Xml类用来处理XML文件 XML是一种文本文件。例如: 张三 李四 可以看出,XML是一种自由形式的语言,所有的标记都由作者自己定义,但是结构非常严谨,每个标记必须有结束符号,而且不能交叉嵌套。,2019年5月21日,第20页,8.2.2在ASP.NET中读写XML文件,使用DataSet对象的ReadXML和WriteXML方法来读写XML文件 使用数据集(Data
12、set)的ReadXML方法可以将XML文档或流读入数据集,使用WriteXML方法可以将DataSet以XML格式写出。,2019年5月21日,第21页,把DataSet中的数据写入到XML文件中语法为: DataSet对象实例.WriteXml (XML文件物理路径,XMLWriteMode.WriteSchema)。 方法: 首先将数据库表中的数据读入DataSet对象中,然后使用DataSet对象的WriteXML方法将数据写入XML文件。 读取XML文件到DataSet中的语法为: DataSet对象实例.ReadXml(XML文件物理路径)。 方法: 首先定义一个DataSet对象
13、中,然后使用DataSet对象的ReadXML方法将XML文件中的数据读入DataSet对象中,再将DataGrid控件与该DataSet对象绑定后显示数据。,利用DataSet读写XML文件,2019年5月21日,第22页,8. 3 读取Excel文件,借助于ADO.NET的Connection对象,我们可以容易的将Excel表中的数据显示在ASP.NET网页上。此时,关于Connection对象的数据连结字符串应改为: “Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Excel文件路径;Extended Properties=Excel 8.0
14、 “ 读取Excel文件方法: 在Connection对象中改变数据提供者,将其指定为Excel文件类型即可。 然后使用数据控件将Excel文件中的数据显示出来。,2019年5月21日,第23页,8.4发送Email,使用SmtpMail类 使用MailMessage类,2019年5月21日,第24页,8.4.1 使用SmtpMail类,SmtpMail和MailMessage类都位于System.Web.Mail命名空间下。使用这些类之前,必须在页面中导入System.Web.Mail命名空间。 Mail对象由System.Web.Mail类库实现,它其实是由MailMessage、Mail
15、Attachment、SmtpMail三个类组成的 MailMessage类用来设置E-mail的内容,如发信人地址、收信人地址等 MailAttachment类用来添加附件 SmtpMail类用来发送信件,2019年5月21日,第25页,使用SmtpMail类Send方法发送Email消息: SmtpMail.Send( _ ““, _ ““, _ “测试邮件“, _ “这是一个邮件发送测试信息! “),使用SmtpMail类的Send方法,2019年5月21日,第26页,8.4.2 使用MailMessage类,MailMessage类用于设置Email消息的特定属性 如要随Email发送附件,应该导入“System.IO“ 命名空间用于上传文件到服务器端 指定SmtpServer属性用来设置发信服务器,2019年5月21日,第27页,本章小结,ASP.NET中对文件和目录的操作主要涉及System.IO命名空间下处理目录的类、处理文件的类和处理流(Stream)的类。 发送Email时涉及的主要是System.Web.Mail命名空间下的SmtpMail和MailMessage类,