Asp.Net文件处理
2007-10-11 11:19
134 查看
MSDN的WEBCAST,感觉单纯看一遍意义不大,做个笔记,以备不时只需查找方便。代码部分本人在XP+VS2005+SQL2005测试通过,不过我是初学,请大家指教。
这篇笔记呢,例子比较多,希望大家都能举一反三。
文件操作概述:
任何一种编程技术,都少不了对文件的操作。
由于ASP.NET使用了.NET平台同一的类库,因而其对文件的操作的功能非常强大.
.NET提供了一些专门用于文件操作的类库,比如File/FileStream/BinaryReader/BinaryWriter/StreamReader/StreamWriter等等。
文件和流:
文件:存储在介质上的永久数据的有序集合,它是进行数据读写操作的基本对象。每个文件都拥有一些基本属性,如文件名、存放路径、访问权限等。
流:提供了连续的字节流存放空间,它也是数据读写操作的基本对象。流中存放的数据空间可以是不连续的,甚至可以分布在多个地方。
ASP.NET中文件操作中当然要引用System.IO这个名称空间:
•Directory :用于创建、移动和枚举通过目录和子目录。
•File :用于创建、复制、删除、移动和打开文件。
•Path:对包含文件或目录路径信息的String 实例执行操作。
•StreamReader、StreamWriter:以一种特定的编码读写字符。
File类:
•提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FileStream对象。
•File 类的所有方法都是静态的,因而无需具有文件的实例就可被调用。
File类常用方法:
•AppendText:创建一个SteamWriter对象用于在指定文件的末尾添加新的内容。
•Copy:复制指定文件。
•Move:移动文件。
•Delete:删除文件。
•Exist:判断指定文件是否存在。
•Open:以指定的方式、权限打开指定文件。
•OpenRead:以只读方式打开指定文件。
•OpenText:打开文本文件,返回流。
•OpenWrite:以读写方式打开指定文件。
•Cteate:创建一个指定文件。
• CreateText:创建一个文本文件。
我们来看下边一些例子来了解File类的基本的使用:
第一个例子是建立一个Txt文件。建立一个页面,添加一个lable:然后后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.ComponentModel;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Drawing;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.SessionState;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.File
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileCreateText : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立StreamWriter为写做准备
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamWriter rw =System.IO.File.CreateText(Server.MapPath(".") + "/CreateText.txt");
21
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//使用WriteLine写入内容
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("使用File.CreateText 方法");
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("返回StreamWriter流,利用这个流进行写入。");
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//将缓冲区的内容写入文件
25
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.Flush();
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//关闭rw对象
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.Close();
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//打开文本文件
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamReader sr =System.IO.File.OpenText(Server.MapPath(".") + "/CreateText.txt");
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StringBuilder output = new StringBuilder();
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string rl;
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while ((rl = sr.ReadLine()) != null)
33
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
output.Append(rl + "<br>");
35
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
36
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label1.Text = output.ToString();
37
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
sr.Close();
38
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
40
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
第二个是读取txt文件,我们就读我们刚才建立那个文件,因为都是使用utf-8编码所以读那个不出现乱码。用FileStream方法可以设置编码,我们后边会说到。
这个页面是放一个HTML控件InputFile那个,然后放个BUTTON来查看LABEL生成的文本。
编码如下:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.File
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileOpen : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Button1_Click(object sender, EventArgs e)
21
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//打开文本文件
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string strFileName = FileOpenFile.PostedFile.FileName;
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (Path.GetFileName(strFileName) == "")
25
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
return;
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamReader sr = System.IO.File.OpenText(strFileName);
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StringBuilder output = new StringBuilder();
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string rl;
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while ((rl = sr.ReadLine()) != null)
30
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
output.Append(rl + "<br>");
32
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
33
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label1.Text = output.ToString();
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
sr.Close();
35
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
36
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
37
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
第三个例子就是拷贝和移动了,为什么放一起说呢,因为这两个你操作时候只需要修改一个小小的地方就可以了,System.IO.File.Copy这里换成Move:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<form id="form1" runat="server">
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<div>
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<h1>拷贝操作前</h1>
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Button ID="btnCopy" runat="server" Text="Copy" OnClick="btnCopy_Click" /><br>
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblBFromFile" runat="server" /><br>
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblBToFile" runat="server" /><br>
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<h1>拷贝操作后</h1>
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblEFromFile" runat="server" /><br>
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblEToFile" runat="server" /><br>
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblError" runat="server" />
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
</div>
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
</form>
后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
14
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.File
15
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
16
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileCopy : System.Web.UI.Page
17
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
18
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//指定源文件和新文件
21
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string orignFile = Server.MapPath(".") + "/CreateText.txt";
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string newFile = Server.MapPath(".") + "/NewCreateText.txt";
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//判断源文件和新文件是否存在
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(orignFile))
25
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblBFromFile.Text = orignFile + "存在";
27
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
29
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblBFromFile.Text = orignFile + "不存在";
31
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(newFile))
33
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblBToFile.Text = newFile + "存在";
35
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
36
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
37
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
38
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblBToFile.Text = newFile + "不存在";
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
40
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
41
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void btnCopy_Click(object sender, EventArgs e)
42
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
43
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string OrignFile = Server.MapPath(".") + "/CreateText.txt";
44
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string NewFile = Server.MapPath(".") + "/NewCreateText.txt";
45
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//拷贝文件
46
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
try
47
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
48
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.File.Copy(OrignFile, NewFile);
49
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(OrignFile))
50
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
51
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblEFromFile.Text = OrignFile + "存在<br>";
52
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
53
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
54
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
55
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblEFromFile.Text = OrignFile + "不存在<br>";
56
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
57
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(NewFile))
58
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
59
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
FileInfo fi = new FileInfo(NewFile);
60
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
DateTime Ctime = fi.CreationTime;
61
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblEToFile.Text = NewFile + "已经存在<br>创建时间:" + Ctime.ToString() + "<br>";
62
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
63
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
64
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
65
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblEToFile.Text = NewFile + "不存在<br>";
66
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
67
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
68
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
catch (Exception ex)
69
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
70
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblError.Text = "不能拷贝文件,错误信息为:" + ex.Message;
71
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
72
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
73
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
74
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
最后一个是删除测试:放个button放个panel来显示信息。
后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.File
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileDel : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void btnDelete_Click(object sender, EventArgs e)
21
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//首先判断文件是否存在
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string delFile = Server.MapPath(".") + "/NewCreateText.txt";
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(delFile))
25
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立FileInfo对象,取得指定的文件信息
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
FileInfo fi = new FileInfo(delFile);
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
DateTime CreateTime = fi.CreationTime;
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label lblOne = new Label();
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblOne.Text = delFile + "存在<br>创建时间为:" + CreateTime.ToString() + "<p>";
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
plShow.Controls.Add(lblOne);
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
try
33
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//删除文件
35
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.File.Delete(delFile);
36
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label lblOk = new Label();
37
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblOk.Text = "删除文件" + delFile + "成功";
38
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
plShow.Controls.Add(lblOk);
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
40
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
catch (Exception ee)
41
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
42
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//捕捉异常
43
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label lblFileExists = new Label();
44
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblFileExists.Text = "不能删除文件" + delFile + "<br>";
45
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
plShow.Controls.Add(lblFileExists);
46
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
47
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
48
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
49
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
50
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label lblError = new Label();
51
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblError.Text = delFile + "根本就不存在";
52
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
plShow.Controls.Add(lblError);
53
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
54
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
55
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
56
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
FileStream:
FileStream 对于在文件系统上读取和写入文件非常有用, FileStream 缓存输入和输出,以获得更好的性能。
FileStream 类能够以同步或异步这两种模式之一打开文件,而且对同步方法(Read 和Write)和异步方法(BeginRead 和BeginWrite)有显著的性能影响。
在Windows系统中,如果输入输出数据小于64KB,则采用同步模式性能较好;而当大于64KB时,则最好采用异步模式。
FileSteam常用属性和方法:
• CanRead:判断当前流是否支持读取。
• CanWrite:判断当前流是否支持写入。
• CanSeek:是否支持搜索。
• IsAsync:是否处于异步打开模式。
• Postion:设置获取当前流所处位置。
• Flush:将当前缓存区的数据写入文件。
• Lock:锁定流,防止其他文件访问。
• Seek:设置当前流操作的指针位置。
还是来看例子来加深理解吧
第一个例子,FileStream来创建文件,页面就放一个Label就行了
后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.FileStream
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileStreamCreate : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath(".") + "/FileStreamCreateText.txt", FileMode.Create, FileAccess.Write);
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立StreamWriter为写做准备
21
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamWriter rw = new StreamWriter(fs, Encoding.Default);
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//使用WriteLine写入内容
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("曾经有一份真挚的爱情放在我的面前。");
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("而我没有珍惜,当我失去的时候,我才追悔莫及。");
25
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("人世间最大的痛苦莫过于此,如果上天给我一个再来一次的机会。");
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("我会对那个女孩说三个字:"我爱你。"");
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("如果非要在这份爱上加一个期限的话,我希望是一万年。");
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//将缓冲区的内容写入文件
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.Flush();
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//关闭rw对象
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.Close();
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
fs.Close();
33
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
fs = new System.IO.FileStream(Server.MapPath(".") + "/FileStreamCreateText.txt", FileMode.Open, FileAccess.Read);
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//打开文本文件
35
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamReader sr = new StreamReader(fs, Encoding.Default);
36
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StringBuilder output = new StringBuilder();
37
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string rl;
38
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while ((rl = sr.ReadLine()) != null)
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
40
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
output.Append(rl + "<br>");
41
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
42
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblFile.Text = output.ToString();
43
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
sr.Close();
44
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
fs.Close();
45
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
46
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
47
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
第二个例子是读文件,注意这里就可以解决File下操作中的乱码问题,因为FileStream下边可以设置编码
放个选择文件的控件,一个按钮一个label。后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
protected void Button1_Click(object sender, EventArgs e)
2
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
3
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string strFileStream;
4
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
strFileStream = File1.PostedFile.FileName;
5
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (Path.GetFileName(strFileStream) == "")
6
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
return;
7
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileStream fs = new System.IO.FileStream(strFileStream,FileMode.Open,FileAccess.Read);
8
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//这里就可以设置编码,我们在这里指定的是系统默认的编码。
9
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamReader sr = new StreamReader(fs, Encoding.Default);
10
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StringBuilder output = new StringBuilder();
11
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string rl;
12
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while ((rl = sr.ReadLine()) != null)
13
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
14
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
output.Append(rl + "<br>");
15
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
16
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
sr.Close();
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
fs.Close();
18
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label1.Text = output.ToString();
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
第三个例子是可以进行流的复制文件。
添加html的inputfile控件,按钮,要复制到的路径,label。注意要复制到的地方必须具有写入操作的权限。
后台编码如下:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.FileStream
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileStreamCopy : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void btnCopy_Click(object sender, EventArgs e)
21
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string OriginFile = FileSelect.PostedFile.FileName;
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string NewFile = tbDes.Text + "/" + Path.GetFileName(OriginFile);
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//下面开始操作
25
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立两个FileStream对象
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileStream fsOF = new System.IO.FileStream(OriginFile, FileMode.Open, FileAccess.Read);
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileStream fsNF = new System.IO.FileStream(NewFile, FileMode.Create, FileAccess.Write);
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立分别建立一个读写类
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
BinaryReader br = new BinaryReader(fsOF);
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
BinaryWriter bw = new BinaryWriter(fsNF);
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//将读取文件流指针指向流的头部
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
br.BaseStream.Seek(0, SeekOrigin.Begin);
33
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//将写入文件流指针指向流的尾部
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
bw.BaseStream.Seek(0, SeekOrigin.End);
35
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while (br.BaseStream.Position < br.BaseStream.Length)
36
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
37
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//从br流中读取一个Byte并马上写入bw流
38
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
bw.Write(br.ReadByte());
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
40
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
br.Close();
41
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
bw.Close();
42
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//操作后判断源文件是否存在
43
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(NewFile))
44
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
45
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lbInfo.Text = "附件复制成功!";
46
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
47
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
48
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
49
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lbInfo.Text = "文件复制失败!";
50
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
51
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
52
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
53
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
DirectoryInfo和FileInfo类:
• Directory(File) 类的所有方法都是静态的,因而无需具有目录的实例就可被调用。DirectoryInfo (FileInfo)类只包含实例方法。
• Directory (File)类的静态方法对所有方法执行安全检查。如果打算多次重用一个对象,请考虑改用DirectoryInfo(FileInfo)的相应实例方法,因为安全检查并不总是必要的。
这些例子都很简单,大家可以参照上边的例子自己做一下。然后最后还有个网络资源管理器的例子,这个篇幅太大了,这里我就不说明了。有想要最后网络管理器例子的朋友请给我留言,或者自己去MSDN下载。
这篇笔记呢,例子比较多,希望大家都能举一反三。
文件操作概述:
任何一种编程技术,都少不了对文件的操作。
由于ASP.NET使用了.NET平台同一的类库,因而其对文件的操作的功能非常强大.
.NET提供了一些专门用于文件操作的类库,比如File/FileStream/BinaryReader/BinaryWriter/StreamReader/StreamWriter等等。
文件和流:
文件:存储在介质上的永久数据的有序集合,它是进行数据读写操作的基本对象。每个文件都拥有一些基本属性,如文件名、存放路径、访问权限等。
流:提供了连续的字节流存放空间,它也是数据读写操作的基本对象。流中存放的数据空间可以是不连续的,甚至可以分布在多个地方。
ASP.NET中文件操作中当然要引用System.IO这个名称空间:
•Directory :用于创建、移动和枚举通过目录和子目录。
•File :用于创建、复制、删除、移动和打开文件。
•Path:对包含文件或目录路径信息的String 实例执行操作。
•StreamReader、StreamWriter:以一种特定的编码读写字符。
File类:
•提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FileStream对象。
•File 类的所有方法都是静态的,因而无需具有文件的实例就可被调用。
File类常用方法:
•AppendText:创建一个SteamWriter对象用于在指定文件的末尾添加新的内容。
•Copy:复制指定文件。
•Move:移动文件。
•Delete:删除文件。
•Exist:判断指定文件是否存在。
•Open:以指定的方式、权限打开指定文件。
•OpenRead:以只读方式打开指定文件。
•OpenText:打开文本文件,返回流。
•OpenWrite:以读写方式打开指定文件。
•Cteate:创建一个指定文件。
• CreateText:创建一个文本文件。
我们来看下边一些例子来了解File类的基本的使用:
第一个例子是建立一个Txt文件。建立一个页面,添加一个lable:然后后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.ComponentModel;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Drawing;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.SessionState;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.File
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileCreateText : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立StreamWriter为写做准备
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamWriter rw =System.IO.File.CreateText(Server.MapPath(".") + "/CreateText.txt");
21
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//使用WriteLine写入内容
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("使用File.CreateText 方法");
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("返回StreamWriter流,利用这个流进行写入。");
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//将缓冲区的内容写入文件
25
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.Flush();
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//关闭rw对象
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.Close();
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//打开文本文件
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamReader sr =System.IO.File.OpenText(Server.MapPath(".") + "/CreateText.txt");
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StringBuilder output = new StringBuilder();
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string rl;
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while ((rl = sr.ReadLine()) != null)
33
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
output.Append(rl + "<br>");
35
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
36
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label1.Text = output.ToString();
37
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
sr.Close();
38
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
40
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
第二个是读取txt文件,我们就读我们刚才建立那个文件,因为都是使用utf-8编码所以读那个不出现乱码。用FileStream方法可以设置编码,我们后边会说到。
这个页面是放一个HTML控件InputFile那个,然后放个BUTTON来查看LABEL生成的文本。
编码如下:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.File
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileOpen : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Button1_Click(object sender, EventArgs e)
21
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//打开文本文件
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string strFileName = FileOpenFile.PostedFile.FileName;
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (Path.GetFileName(strFileName) == "")
25
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
return;
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamReader sr = System.IO.File.OpenText(strFileName);
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StringBuilder output = new StringBuilder();
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string rl;
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while ((rl = sr.ReadLine()) != null)
30
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
output.Append(rl + "<br>");
32
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
33
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label1.Text = output.ToString();
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
sr.Close();
35
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
36
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
37
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
第三个例子就是拷贝和移动了,为什么放一起说呢,因为这两个你操作时候只需要修改一个小小的地方就可以了,System.IO.File.Copy这里换成Move:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<form id="form1" runat="server">
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<div>
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<h1>拷贝操作前</h1>
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Button ID="btnCopy" runat="server" Text="Copy" OnClick="btnCopy_Click" /><br>
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblBFromFile" runat="server" /><br>
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblBToFile" runat="server" /><br>
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<h1>拷贝操作后</h1>
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblEFromFile" runat="server" /><br>
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblEToFile" runat="server" /><br>
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
<asp:Label id="lblError" runat="server" />
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
</div>
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
</form>
后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
14
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.File
15
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
16
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileCopy : System.Web.UI.Page
17
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
18
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//指定源文件和新文件
21
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string orignFile = Server.MapPath(".") + "/CreateText.txt";
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string newFile = Server.MapPath(".") + "/NewCreateText.txt";
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//判断源文件和新文件是否存在
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(orignFile))
25
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblBFromFile.Text = orignFile + "存在";
27
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
29
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblBFromFile.Text = orignFile + "不存在";
31
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(newFile))
33
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblBToFile.Text = newFile + "存在";
35
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
36
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
37
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
38
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblBToFile.Text = newFile + "不存在";
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
40
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
41
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void btnCopy_Click(object sender, EventArgs e)
42
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
43
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string OrignFile = Server.MapPath(".") + "/CreateText.txt";
44
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string NewFile = Server.MapPath(".") + "/NewCreateText.txt";
45
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//拷贝文件
46
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
try
47
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
48
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.File.Copy(OrignFile, NewFile);
49
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(OrignFile))
50
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
51
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblEFromFile.Text = OrignFile + "存在<br>";
52
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
53
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
54
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
55
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblEFromFile.Text = OrignFile + "不存在<br>";
56
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
57
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(NewFile))
58
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
59
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
FileInfo fi = new FileInfo(NewFile);
60
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
DateTime Ctime = fi.CreationTime;
61
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblEToFile.Text = NewFile + "已经存在<br>创建时间:" + Ctime.ToString() + "<br>";
62
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
63
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
64
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
65
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblEToFile.Text = NewFile + "不存在<br>";
66
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
67
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
68
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
catch (Exception ex)
69
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
70
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblError.Text = "不能拷贝文件,错误信息为:" + ex.Message;
71
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
72
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
73
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
74
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
最后一个是删除测试:放个button放个panel来显示信息。
后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.File
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileDel : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void btnDelete_Click(object sender, EventArgs e)
21
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//首先判断文件是否存在
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string delFile = Server.MapPath(".") + "/NewCreateText.txt";
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(delFile))
25
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立FileInfo对象,取得指定的文件信息
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
FileInfo fi = new FileInfo(delFile);
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
DateTime CreateTime = fi.CreationTime;
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label lblOne = new Label();
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblOne.Text = delFile + "存在<br>创建时间为:" + CreateTime.ToString() + "<p>";
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
plShow.Controls.Add(lblOne);
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
try
33
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//删除文件
35
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.File.Delete(delFile);
36
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label lblOk = new Label();
37
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblOk.Text = "删除文件" + delFile + "成功";
38
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
plShow.Controls.Add(lblOk);
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
40
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
catch (Exception ee)
41
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
42
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//捕捉异常
43
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label lblFileExists = new Label();
44
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblFileExists.Text = "不能删除文件" + delFile + "<br>";
45
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
plShow.Controls.Add(lblFileExists);
46
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
47
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
48
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
49
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
50
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label lblError = new Label();
51
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblError.Text = delFile + "根本就不存在";
52
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
plShow.Controls.Add(lblError);
53
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
54
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
55
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
56
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
FileStream:
FileStream 对于在文件系统上读取和写入文件非常有用, FileStream 缓存输入和输出,以获得更好的性能。
FileStream 类能够以同步或异步这两种模式之一打开文件,而且对同步方法(Read 和Write)和异步方法(BeginRead 和BeginWrite)有显著的性能影响。
在Windows系统中,如果输入输出数据小于64KB,则采用同步模式性能较好;而当大于64KB时,则最好采用异步模式。
FileSteam常用属性和方法:
• CanRead:判断当前流是否支持读取。
• CanWrite:判断当前流是否支持写入。
• CanSeek:是否支持搜索。
• IsAsync:是否处于异步打开模式。
• Postion:设置获取当前流所处位置。
• Flush:将当前缓存区的数据写入文件。
• Lock:锁定流,防止其他文件访问。
• Seek:设置当前流操作的指针位置。
还是来看例子来加深理解吧
第一个例子,FileStream来创建文件,页面就放一个Label就行了
后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.FileStream
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileStreamCreate : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileStream fs = new System.IO.FileStream(Server.MapPath(".") + "/FileStreamCreateText.txt", FileMode.Create, FileAccess.Write);
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立StreamWriter为写做准备
21
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamWriter rw = new StreamWriter(fs, Encoding.Default);
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//使用WriteLine写入内容
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("曾经有一份真挚的爱情放在我的面前。");
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("而我没有珍惜,当我失去的时候,我才追悔莫及。");
25
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("人世间最大的痛苦莫过于此,如果上天给我一个再来一次的机会。");
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("我会对那个女孩说三个字:"我爱你。"");
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.WriteLine("如果非要在这份爱上加一个期限的话,我希望是一万年。");
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//将缓冲区的内容写入文件
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.Flush();
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//关闭rw对象
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
rw.Close();
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
fs.Close();
33
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
fs = new System.IO.FileStream(Server.MapPath(".") + "/FileStreamCreateText.txt", FileMode.Open, FileAccess.Read);
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//打开文本文件
35
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamReader sr = new StreamReader(fs, Encoding.Default);
36
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StringBuilder output = new StringBuilder();
37
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string rl;
38
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while ((rl = sr.ReadLine()) != null)
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
40
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
output.Append(rl + "<br>");
41
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
42
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lblFile.Text = output.ToString();
43
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
sr.Close();
44
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
fs.Close();
45
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
46
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
47
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
第二个例子是读文件,注意这里就可以解决File下操作中的乱码问题,因为FileStream下边可以设置编码
放个选择文件的控件,一个按钮一个label。后台编码:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
protected void Button1_Click(object sender, EventArgs e)
2
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
3
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string strFileStream;
4
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
strFileStream = File1.PostedFile.FileName;
5
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (Path.GetFileName(strFileStream) == "")
6
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
return;
7
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileStream fs = new System.IO.FileStream(strFileStream,FileMode.Open,FileAccess.Read);
8
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//这里就可以设置编码,我们在这里指定的是系统默认的编码。
9
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StreamReader sr = new StreamReader(fs, Encoding.Default);
10
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
StringBuilder output = new StringBuilder();
11
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string rl;
12
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while ((rl = sr.ReadLine()) != null)
13
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
14
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
output.Append(rl + "<br>");
15
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
16
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
sr.Close();
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
fs.Close();
18
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
Label1.Text = output.ToString();
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
第三个例子是可以进行流的复制文件。
添加html的inputfile控件,按钮,要复制到的路径,label。注意要复制到的地方必须具有写入操作的权限。
后台编码如下:
1
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System;
2
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Data;
3
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Configuration;
4
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Collections;
5
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web;
6
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.Security;
7
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI;
8
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls;
9
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.WebControls.WebParts;
10
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Web.UI.HtmlControls;
11
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.IO;
12
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
using System.Text;
13
![](http://www.vs2005.com/Images/OutliningIndicators/None.gif)
namespace AspFile.FileStream
14
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
15
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
public partial class FileStreamCopy : System.Web.UI.Page
16
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
17
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void Page_Load(object sender, EventArgs e)
18
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
19
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
20
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
protected void btnCopy_Click(object sender, EventArgs e)
21
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
22
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string OriginFile = FileSelect.PostedFile.FileName;
23
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
string NewFile = tbDes.Text + "/" + Path.GetFileName(OriginFile);
24
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//下面开始操作
25
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立两个FileStream对象
26
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileStream fsOF = new System.IO.FileStream(OriginFile, FileMode.Open, FileAccess.Read);
27
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
System.IO.FileStream fsNF = new System.IO.FileStream(NewFile, FileMode.Create, FileAccess.Write);
28
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//建立分别建立一个读写类
29
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
BinaryReader br = new BinaryReader(fsOF);
30
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
BinaryWriter bw = new BinaryWriter(fsNF);
31
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//将读取文件流指针指向流的头部
32
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
br.BaseStream.Seek(0, SeekOrigin.Begin);
33
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//将写入文件流指针指向流的尾部
34
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
bw.BaseStream.Seek(0, SeekOrigin.End);
35
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
while (br.BaseStream.Position < br.BaseStream.Length)
36
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
37
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//从br流中读取一个Byte并马上写入bw流
38
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
bw.Write(br.ReadByte());
39
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
40
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
br.Close();
41
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
bw.Close();
42
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
//操作后判断源文件是否存在
43
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
if (System.IO.File.Exists(NewFile))
44
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
45
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lbInfo.Text = "附件复制成功!";
46
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
47
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
else
48
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.vs2005.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.vs2005.com/images/OutliningIndicators/got.gif)
{
49
![](http://www.vs2005.com/Images/OutliningIndicators/InBlock.gif)
lbInfo.Text = "文件复制失败!";
50
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
51
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
52
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
53
![](http://www.vs2005.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
DirectoryInfo和FileInfo类:
• Directory(File) 类的所有方法都是静态的,因而无需具有目录的实例就可被调用。DirectoryInfo (FileInfo)类只包含实例方法。
• Directory (File)类的静态方法对所有方法执行安全检查。如果打算多次重用一个对象,请考虑改用DirectoryInfo(FileInfo)的相应实例方法,因为安全检查并不总是必要的。
这些例子都很简单,大家可以参照上边的例子自己做一下。然后最后还有个网络资源管理器的例子,这个篇幅太大了,这里我就不说明了。有想要最后网络管理器例子的朋友请给我留言,或者自己去MSDN下载。
相关文章推荐
- IIS7.5配置Asp.net项目出现HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
- ASP.NET Core 中文文档 第三章 原理(3)静态文件处理
- [转载][转]如何处理ASP.NET 2.0配置文件
- asp.net中对网络文件的读取及处理
- asp.net 在处理向该请求提供服务所需的配置文件时出错
- asp.net 处理原文件中过长的viewstate代码
- InfoQ: 在ASP.NET中处理大文件上传
- 在ASP.NET中处理大文件上传
- ASP.NET实现从服务器下载文件问题处理
- asp.net 文件下载 文件名称乱码 处理~~
- ASP.NET WebApi 上传文件时异常 Failed to execute send on XMLHttpRequest 的一个处理方法
- Asp.net MVC 处理文件的上传下载
- ASP.NET实现从服务器下载文件问题处理
- 如何处理ASP.NET 2.0配置文件
- ASP.NET 用.Net的File控件上传文件大文件上传之异常处理 的解决方案
- 在ASP.NET中进行文件处理
- 【转载】Asp.NET大文件上传组件开发总结(三)---处理文件内容
- Asp.Net中用OLEDB读dbf文件,报“外部表不是预期的格式”错误的处理
- 【转】Asp.NET大文件上传组件开发总结(三)---处理文件内容
- asp.net 一般性处理文件执行原理