1、C#文件操作大全文件操作大全本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件、指定文件夹下 面的所有内容copy到目标文件夹下面、指定文件夹下面的所有内容Detele、读取文本文件、获取文件列表、读取日志文件、写入日志文件、创建HTML 文件、CreateDirectory方法的使用C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(.)+myText.txt); sw.WriteLine(追逐理想); sw.WriteLine(kzlll); sw.Writ
2、eLine(.NET笔记); sw.Flush(); sw.Close(); C#拷贝文件 string OrignFile,NewFile; OrignFile = Server.MapPath(.)+myText.txt; NewFile = Server.MapPath(.)+myTextCopy.txt; File.Copy(OrignFile,NewFile,true); C#删除文件 string delFile = Server.MapPath(.)+myTextCopy.txt; File.Delete(delFile); C#移动文件 string OrignFile,New
3、File; OrignFile = Server.MapPath(.)+myText.txt; NewFile = Server.MapPath(.)+myTextCopy.txt; File.Move(OrignFile,NewFile); C#创建目录 / 创建目录c:sixAge DirectoryInfo d=Directory.CreateDirectory(c:sixAge); / d1指向c:sixAgesixAge1 DirectoryInfo d1=d.CreateSubdirectory(sixAge1); / d2指向c:sixAgesixAge1sixAge1_1 Di
4、rectoryInfo d2=d1.CreateSubdirectory(sixAge1_1); / 将当前目录设为c:sixAge Directory.SetCurrentDirectory(c:sixAge); / 创建目录c:sixAgesixAge2 Directory.CreateDirectory(sixAge2); / 创建目录c:sixAgesixAge2sixAge2_1 Directory.CreateDirectory(sixAge2sixAge2_1); 递归删除文件夹及文件 public void DeleteFolder(string dir) if (Direct
5、ory.Exists(dir) /如果存在这个文件夹删除之 foreach(string d in Directory.GetFileSystemEntries(dir) if(File.Exists(d) File.Delete(d); /直接删除其中的文件 else DeleteFolder(d); /递归删除子文件夹 Directory.Delete(dir); /删除已空文件夹 Response.Write(dir+ 文件夹删除成功); else Response.Write(dir+ 该文件夹不存在); /如果文件夹不存在则提示 protected void Page_Load (O
6、bject sender ,EventArgs e) string Dir=D:gbook11; DeleteFolder(Dir); /调用函数删除文件夹 / = / 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面 / 如果目标文件夹为只读属性就会报错。 / April 18April2005 In STU / = public static void CopyDir(string srcPath,string aimPath) try / 检查目标目录是否以目录分割字符结束如果不是则添加之 if(aimPathaimPath.Length-1 != Path.Direc
7、torySeparatorChar) aimPath += Path.DirectorySeparatorChar; / 判断目标目录是否存在如果不存在则新建之 if(!Directory.Exists(aimPath) Directory.CreateDirectory(aimPath); / 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 / 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法 / string fileList = Directory.GetFiles(srcPath); string fileList = Directory.GetFileS
8、ystemEntries(srcPath); / 遍历所有的文件和目录 foreach(string file in fileList) / 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件 if(Directory.Exists(file) CopyDir(file,aimPath+Path.GetFileName(file); / 否则直接Copy文件 else File.Copy(file,aimPath+Path.GetFileName(file),true); catch (Exception e) MessageBox.Show (e.ToString(); / = /
9、 实现一个静态方法将指定文件夹下面的所有内容Detele / 测试的时候要小心操作,删除之后无法恢复。 / = public static void DeleteDir(string aimPath) try / 检查目标目录是否以目录分割字符结束如果不是则添加之 if(aimPathaimPath.Length-1 != Path.DirectorySeparatorChar) aimPath += Path.DirectorySeparatorChar; / 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 / 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方
10、法 / string fileList = Directory.GetFiles(aimPath); string fileList = Directory.GetFileSystemEntries(aimPath); / 遍历所有的文件和目录 foreach(string file in fileList) / 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件 if(Directory.Exists(file) DeleteDir(aimPath+Path.GetFileName(file); / 否则直接Delete文件 else File.Delete (aimPath+
11、Path.GetFileName(file); /删除文件夹 System.IO .Directory .Delete (aimPath,true); catch (Exception e) MessageBox.Show (e.ToString(); 需要引用命名空间:using System.IO;/*/ / / / /-/- public static void CopyFolder(string strFromPath,string strToPath) /如果源文件夹不存在,则创建 if (!Directory.Exists(strFromPath) Directory.Create
12、Directory(strFromPath); /取得要拷贝的文件夹名 string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf() + 1,strFromPath.Length - strFromPath.LastIndexOf() - 1); /如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹 if (!Directory.Exists(strToPath + + strFolderName) Directory.CreateDirectory(strToPath + + strFolderName);
13、 /创建数组保存源文件夹下的文件名 string strFiles = Directory.GetFiles(strFromPath); /循环拷贝文件 for(int i = 0;i strFiles.Length;i+) /取得拷贝的文件名,只取文件名,地址截掉。 string strFileName = strFilesi.Substring(strFilesi.LastIndexOf() + 1,strFilesi.Length - strFilesi.LastIndexOf() - 1); /开始拷贝文件,true表示覆盖同名文件 File.Copy(strFilesi,strToP
14、ath + + strFolderName + + strFileName,true); /创建DirectoryInfo实例 DirectoryInfo dirInfo = new DirectoryInfo(strFromPath); /取得源文件夹下的所有子文件夹名称 DirectoryInfo ZiPath = dirInfo.GetDirectories(); for (int j = 0;j ZiPath.Length;j+) /获取所有子文件夹名 string strZiPath = strFromPath + + ZiPathj.ToString(); /把得到的子文件夹当成新
15、的源文件夹,从头开始新一轮的拷贝 CopyFolder(strZiPath,strToPath + + strFolderName); 一读取文本文件/*/ / 读取文本文件/ private void ReadFromTxtFile() if(filePath.PostedFile.FileName != ) txtFilePath =filePath.PostedFile.FileName; fileExtName = txtFilePath.Substring(txtFilePath.LastIndexOf(.)+1,3); if(fileExtName !=txt & fileExtN
16、ame != TXT) Response.Write(请选择文本文件); else StreamReader fileStream = new StreamReader(txtFilePath,Encoding.Default); txtContent.Text = fileStream.ReadToEnd(); fileStream.Close(); 二获取文件列表/*/ / 获取文件列表/ private void GetFileList() string strCurDir,FileName,FileExt; /*/文件大小 long FileSize; /*/最后修改时间; DateT
17、ime FileModify; /*/初始化 if(!IsPostBack) /*/初始化时,默认为当前页面所在的目录 strCurDir = Server.MapPath(.); lblCurDir.Text = strCurDir; txtCurDir.Text = strCurDir; else strCurDir = txtCurDir.Text; txtCurDir.Text = strCurDir; lblCurDir.Text = strCurDir; FileInfo fi; DirectoryInfo dir; TableCell td; TableRow tr; tr =
18、new TableRow(); /*/动态添加单元格内容 td = new TableCell(); td.Controls.Add(new LiteralControl(文件名); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(文件类型); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(文件大小); tr.Cells.Add(td); td = new TableCell(); td.C
19、ontrols.Add(new LiteralControl(最后修改时间); tr.Cells.Add(td); tableDirInfo.Rows.Add(tr); /*/针对当前目录建立目录引用对象 DirectoryInfo dirInfo = new DirectoryInfo(txtCurDir.Text); /*/循环判断当前目录下的文件和目录 foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos() FileName = ; FileExt = ; FileSize = 0; /*/如果是文件 if(fsi is Fi
20、leInfo) fi = (FileInfo)fsi; /*/取得文件名 FileName = fi.Name; /*/取得文件的扩展名 FileExt = fi.Extension; /*/取得文件的大小 FileSize = fi.Length; /*/取得文件的最后修改时间 FileModify = fi.LastWriteTime; /*/否则是目录 else dir = (DirectoryInfo)fsi; /*/取得目录名 FileName = dir.Name; /*/取得目录的最后修改时间 FileModify = dir.LastWriteTime; /*/设置文件的扩展名
21、为文件夹 FileExt = 文件夹; /*/动态添加表格内容 tr = new TableRow(); td = new TableCell(); td.Controls.Add(new LiteralControl(FileName); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(FileExt); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(FileSize.ToString()
22、+字节); tr.Cells.Add(td); td = new TableCell(); td.Controls.Add(new LiteralControl(FileModify.ToString(yyyy-mm-dd hh:mm:ss); tr.Cells.Add(td); tableDirInfo.Rows.Add(tr); 三读取日志文件/*/ / 读取日志文件/ private void ReadLogFile() /*/从指定的目录以打开或者创建的形式读取日志文件 FileStream fs = new FileStream(Server.MapPath(upedFile)+lo
23、gfile.txt, FileMode.OpenOrCreate, FileAccess.Read); /*/定义输出字符串 StringBuilder output = new StringBuilder(); /*/初始化该字符串的长度为0 output.Length = 0; /*/为上面创建的文件流创建读取数据流 StreamReader read = new StreamReader(fs); /*/设置当前流的起始位置为文件流的起始点 read.BaseStream.Seek(0, SeekOrigin.Begin); /*/读取文件 while (read.Peek() -1) /*/取文件的一行内容并换行
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1