首先,要实现对文件夹的操作就必须添加命名空间:using System.IO; using System.Text;
这两个命名空间是对文件夹操作的必要条件。
现在动态的新建文件夹:
首先,给出要新建文件夹的路径:例如:
string Path = @"d:/大学/平时的练习/文件夹操作/"; 这表明该文件夹被新建在D盘上面;
实现方法:
#region 创建文件夹事件
protected void Button1_Click(object sender, EventArgs e)
{///新建文件夹
///
if(txtFile.Text==""){
Response.Write("<script>alert('请输入数据!!')</script>");
}
else{
path = path + txtFile.Text;///路径 txtFile.Text(文本框)
if(Directory.Exists(path)){ ///判断该文件夹是否已经存在。
Response.Write("<script>alert('该文件夹已经存在了!')</script>");
return;
}
else{ //新建该文件夹
Directory.CreateDirectory(path);
Response.Write("<script>alert('创建成功!')</script>");
}
}
}
#endregion
上面实现的主要是动态创建文件夹,下面是将文件放到该文件夹中,实现方法:
#region 上传数据事件
protected void Button2_Click(object sender, EventArgs e)
{
if(File1.PostedFile.ContentLength==0){ ///没有选择要上传的数据
Response.Write("<script>alert('请选择要上传的数据!!')</script>");
}
else{
if(TextBox2.Text==""){
Response.Write("<script>alert('请输入要上传到的文件夹名称!')</script>");
}
else{
///现在获得了文件夹的路劲,但要判断是否存在该文件夹.
///
Npath = Npath + TextBox2.Text;
if(Directory.Exists(Npath)){
//该文件夹存在,可以上传文件
string FileFulllName = this.File1.PostedFile.FileName;///获取全名
string FileName = FileFulllName.Substring(FileFulllName.LastIndexOf("//")+1);///获取文件的名称
string FileType = FileName.Substring(FileName.LastIndexOf(".")+1);
//给上传文件加载一个时间,以免冲突.
FileName = DateTime.Now.Month.ToString() + "." + DateTime.Now.Day.ToString() + "." +DateTime.Now.Hour.ToString()+"."+DateTime.Now.Minute.ToString()+"."+DateTime.Now.Second.ToString()+"."+ FileName;
if(FileType=="png"||FileType=="gif"||FileType=="jpg"){
///保存数据到文件夹
///
this.File1.PostedFile.SaveAs(Npath+@"/"+FileName);
Response.Write("<script>alert('上传成功 !')</script>");
} }
else{
Response.Write("<script>alert('不存在这样的文件夹!!')</script>"); }
}
}
}
#endregion
现在进行动态的创建文本文档,方法如下:
#region 创建文本文档事件
protected void Button3_Click(object sender, EventArgs e)
{ if(txtName.Text==""){
Response.Write("<script>alert('请输入文件名!')</script>");
}
else{
Path = Path + txtName.Text;
if(File.Exists(Path)){
Response.Write("<script>alert('已经存在了!!')</script>");
}
else{
FileStream fs = File.Create(Path); ///创建文本文档
///下面两行代码同样可以实现将数据写入到文本文档中去,但是一定要记得关闭数据流。
//Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
//fs.Write(info, 0, info.Length);
fs.Close(); //关闭数据流,上面的方法到此就已经实现将数据写入到文本文档中。
//下面的是另外的一种方法,实现将数据写入到文本文档中。
StreamWriter sw = new StreamWriter(Path); //Path 指的是文本文档的路径,当然也可以直接给//出文本文档的名称。
sw.Write("我要写点东西");
sw.Close();
///没有将文件流关闭,所以才会出现这样的问题;现在将文件读取出来。
Response.Write("<script>alert('成功了!')</script>");
}
} }
#endregion
以上实现了动态创建文件夹、文本文档、并且将数据动态存放到文件夹中,以及将数据动态的写入到文本文档中,现在则主要是将数据从该文本文档中读取出来,下面的代码则是为了实现这一目的:
#region 读取文档中的数据
protected void Button5_Click(object sender, EventArgs e)
{
///首先,判断要读取的文档是否存在,如果存在就读取;否则就不读取。
Path = Path + "rr.txt";//要读取文件的路径
if(File.Exists(Path)){ //判断是否存在.
//可以执行读取操作.
StreamReader sr = new StreamReader(Path); ///指定读取文档的路径。
string Result;
while((Result=sr.ReadLine())!=null){
TextBox3.Text = Result; ///将读取出来的数据显示到文本框里面。
}
sr.Close(); //关闭流。
Response.Write("<script>alert('读取完毕!')</script>");
}
else{
Response.Write("<script>alert('您要读取的文件不存在! ')</script>");
return; }
}
#endregion
还需要实现的功能有:怎样实现文件的复制、文件的重命名等操作;
文件夹的重命名:
实现原理:文件夹重命名的实现原理主要是通过将文件重新复制到另外一个文件夹里面,然后将原来的文件夹删除掉,进而实现文件夹的重命名实现代码如下:
string Path = @"d:/学期项目设计(三)/NewPhoto/";//旧文件夹的路径
string NewPath = @"d:/学期项目设计(三)/NewPhoto/";//新文件夹的路径.
string result;
protected void Button1_Click(object sender, EventArgs e)
{
///旧文件夹的路径
Path =Path + Session["Name"].ToString() + @"/" + Session["AlbumName"].ToString();
//新文件夹的路径
NewPath = NewPath + Session["Name"].ToString() + @"/" + TextBox2.Text;//新建文件夹的路径,
//现在需要判断该文件夹是否已经存在了。
if(Directory.Exists(NewPath)){//判断是否已经存在了.
Response.Write("<script>alert('该相册已经存在,不能再新建!')</script>");
return;
}
//如果不存在.,那么就更改相册名,并将数据全部移到新的相册中,将旧相册删除掉。
Directory.Move(Path,NewPath);//实现将文件夹重命名操作。
//在这里需要注意一点,修改文件夹的名称,新文件夹不可以先存在,而是由系统自动新建,否则程序就会报错。
野狼
2011年6月6日晚
对文本文档的继续写入操作,如下:
#region 添加数据到文本文档的操作
protected void Button8_Click(object sender, EventArgs e)
{
path = path + TextBox7.Text;///文本文档路径(已经存在的)
///
//Npath = Npath + TextBox8.Text;
if(TextBox8.Text==""||TextBox7.Text==""){
Response.Write("<script>alert('请输入数据!')</script>");
return;
}
else{
///判断是否存在这样的文件
///
if(!File.Exists(path)){
Response.Write("<script>alert('不存在这样的文件!')</script>");
return;
}
else{
using (StreamWriter sw=File.AppendText(path)) {
sw.Write(TextBox8.Text);
sw.Close();///关闭数据流.
Response.Write("<script>alert('成功了哈')</script>");
}
}
}
///现在将数据读取出来
///
using (StreamReader sr = File.OpenText(path)) {
string Result;
while((Result=sr.ReadLine())!=null){
TextBox9.Text = Result;
}
sr.Close();
}
Response.Write("<script>alert('成功了哈')</script>");
}
#endregion
对文件夹的删除操作,实现代码如下:
#region 删除文件夹操作
protected void Button7_Click(object sender, EventArgs e)
{
string DeletePath=@"D:/大学/平时的练习/文件夹操作/";//删除文件夹的上一级路径
if(TextBox6.Text==""){
Response.Write("<script>alert('请输入文件夹名称! ')</script>");
}
else{
///现在需要判断是否存在这样的文件夹
///
DeletePath = DeletePath + TextBox6.Text;
if(!Directory.Exists(DeletePath)){
Response.Write("<script>alert('您要读取的文件不存在! ')</script>");
return;
}
else{
Directory.Delete(DeletePath);
Response.Write("<script>alert('删除成功!')</script>");
}
}
}
#endregion
野狼
2011年6月7日