NET操作文件 二 -----FileSteam类的使用
FileSteam类的使用
private void Page_Load(object sender, System.EventArgs e) { FileStream fs = new FileStream(Server.MapPath(".")+"
//FileStreamCreateText.txt",FileMode.Create,FileAccess.Write
); //建立StreamWriter为写做准备 StreamWriter rw = new StreamWriter(fs,Encoding.Default); //使用WriteLine写入内容 rw.WriteLine("曾经有一份真挚的爱情放在我的面前。"); rw.WriteLine("而我没有珍惜,当我失去的时候,我才追悔莫及。"); rw.WriteLine("人世间最大的痛苦莫过于此,如果上天给我一个再来一次的机会。"); rw.WriteLine("我会对那个女孩说三个字:/"我爱你。/""); rw.WriteLine("如果非要在这份爱上加一个期限的话,我希望是一万年。");
//将缓冲区的内容写入文件 rw.Flush();
//关闭rw对象 rw.Close(); fs.Close(); fs = new FileStream(Server.MapPath(".")+"
//FileStreamCreateText.txt",FileMode.Open,FileAccess.Read
); //打开文本文件 StreamReader sr = new StreamReader(fs,Encoding.Default); StringBuilder output = new StringBuilder(); string rl; while((rl=sr.ReadLine())!=null) { output.Append(rl+"<br>"); } lblFile.Text = output.ToString(); sr.Close(); fs.Close(); }
private void btnRead_Click(object sender, System.EventArgs e) { //打开文本文件 string strFileName = FileSelect.PostedFile.FileName; if(Path.GetFileName(strFileName)=="") return; FileStream fs = new FileStream(strFileName,FileMode.Open,FileAccess.Read); StreamReader sr = new StreamReader(fs,Encoding.Default); StringBuilder output = new StringBuilder(); string rl; while((rl=sr.ReadLine())!=null) { output.Append(rl+"<br>"); } sr.Close(); fs.Close(); lblFile.Text = output.ToString(); }
private void btnCopy_Click(object sender, System.EventArgs e) { string OriginFile = FileSelect.PostedFile.FileName; string NewFile = tbDes.Text +"
//"+Path.GetFileName(OriginFile
);
//下面开始操作 //建立两个FileStream对象
FileStream fsOF = new FileStream(OriginFile,FileMode.Open,FileAccess.Read); FileStream fsNF = new FileStream(NewFile,FileMode.Create,FileAccess.Write); //建立分别建立一个读写类 BinaryReader br = new BinaryReader(fsOF); BinaryWriter bw = new BinaryWriter(fsNF); //将读取文件流指针指向流的头部 br.BaseStream.Seek(0,SeekOrigin.Begin); //将写入文件流指针指向流的尾部 bw.BaseStream.Seek(0,SeekOrigin.End);
while(br.BaseStream.Position < br.BaseStream.Length) { //从br流中读取一个Byte并马上写入bw流 bw.Write(br.ReadByte()); } br.Close(); bw.Close(); //操作后判断源文件是否存在 if(File.Exists(NewFile)) { lbInfo.Text = "附件复制成功!"; } else { lbInfo.Text = "文件复制失败!"; } }
DirectoryInto和FileInfo类的使用 private void Page_Load(object sender, System.EventArgs e) { string strCurrentDir; //初始化一些数据 if(!Page.IsPostBack) { strCurrentDir = Server.MapPath("."); lblCurrentDir.Text = strCurrentDir; tbCurrentDir.Text = strCurrentDir; } else { strCurrentDir = tbCurrentDir.Text; tbCurrentDir.Text = strCurrentDir; lblCurrentDir.Text = strCurrentDir; } FileInfo fi; DirectoryInfo di; TableCell td; TableRow tr;
tr = new TableRow(); td = new TableCell(); td.Controls.Add(new LiteralControl("<img src='name.gif'>")); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl("<img src='size.gif'>")); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl("<img src='lastmodify.gif'>")); tr.Cells.Add(td); tbDirInfo.Rows.Add(tr); string FileName; //文件名称 string FileExt; //文件扩展名 string FilePic; //文件图片 long FileSize; //文件大小 DateTime FileModify; //文件更新时间 DirectoryInfo dir = new DirectoryInfo(strCurrentDir); foreach(FileSystemInfo fsi in dir.GetFileSystemInfos()) { FilePic = ""; FileName = ""; FileExt = ""; FileSize = 0; if(fsi is FileInfo) { //表示当前fsi是文件 fi = (FileInfo)fsi; FileName = fi.Name; FileExt = fi.Extension; FileSize = fi.Length; FileModify = fi.LastWriteTime; //通过扩展名来选择文件显示图标 switch(FileExt) { case ".gif": FilePic = "gif.gif"; break; default: FilePic = "other.gif"; break; } FilePic = "<img src='"+FilePic+"' width=25 height=20>"; } else { //当前为目录 di = (DirectoryInfo)fsi; FileName = di.Name; FileModify = di.LastWriteTime; FilePic = "<img src='directory.gif' width=25 height=20>"; } //组建新的行 tr = new TableRow(); td = new TableCell(); td.Controls.Add(new LiteralControl(FilePic+" "+FileName)); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(FileSize.ToString())); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(FileModify.ToString())); tr.Cells.Add(td); tbDirInfo.Rows.Add(tr); } }
private void btnFind_Click(object sender, System.EventArgs e) { try { if(tbInput.Text.Trim()=="") { lbPath.Text = "文件名为空!"; return; } string[] drives = System.IO.Directory.GetLogicalDrives(); foreach (string str in drives) { if(ProcessDirectory(str)) break; } if(!bExist) lbPath.Text = "不存在此文件!"; } catch (System.IO.IOException) { Response.Write("I/O错误!"); } catch (System.Security.SecurityException) { Response.Write("没有访问权限!"); } } public bool ProcessDirectory(string targetDirectory) { try { // Process the list of files found in the directory string [] fileEntries = Directory.GetFiles(targetDirectory); foreach(string fileName in fileEntries) { if(ProcessFile(fileName)) return true; } // Recurse into subdirectories of this directory string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory); foreach(string subdirectory in subdirectoryEntries) { if(ProcessDirectory(subdirectory)) return true; } return false; } catch(Exception) { return false; } } public bool ProcessFile(string strFileName) { if(Path.GetFileName(strFileName).ToLower()==tbInput.Text.Trim().ToLower()) { lbPath.Text = strFileName.ToLower(); bExist=true; return true; } else return false; }
|