1、C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件.本文收集了目前最为常用的 C#经典操作文件的方法,具体内容如下: C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件、指定文件夹下 面的所有内容 copy 到目标文件夹下面、指定文件夹下面的所有内容 Detele、读取文本文件、获取文件列表、读取日志文件、写入日志文件、创建 HTML 文件、 CreateDirectory 方法的使用C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(“.“)+“myText.txt“);sw.WriteL
2、ine(“追逐理想“); sw.WriteLine(“kzlll“); sw.WriteLine(“.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(“.“)+“myTextCo
3、py.txt“; File.Delete(delFile); C#移动文件 string OrignFile,NewFile; 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 DirectoryI
4、nfo d1=d.CreateSubdirectory(“sixAge1“); / d2 指向 c:sixAgesixAge1sixAge1_1 DirectoryInfo d2=d1.CreateSubdirectory(“sixAge1_1“); / 将当前目录设为 c:sixAge Directory.SetCurrentDirectory(“c:sixAge“); / 创建目录 c:sixAgesixAge2 Directory.CreateDirectory(“sixAge2“); / 创建目录 c:sixAgesixAge2sixAge2_1 Directory.CreateDir
5、ectory(“sixAge2sixAge2_1“); 递归删除文件夹及文件 public void DeleteFolder(string dir) if (Directory.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+
6、“ 文件夹删除成功“); else Response.Write(dir+“ 该文件夹不存在“); /如果文件夹不存在则提示 protected void Page_Load (Object sender ,EventArgs e) string Dir=“D:gbook11“; DeleteFolder(Dir); /调用函数删除文件夹 / =/ 实现一个静态方法将指定文件夹下面的所有内容 copy 到目标文件夹下面/ 如果目标文件夹为只读属性就会报错。/ April 18April2005 In STU/ =public static void CopyDir(string srcPath
7、,string aimPath)try/ 检查目标目录是否以目录分割字符结束如果不是则添加之if(aimPathaimPath.Length-1 != Path.DirectorySeparatorChar) aimPath += Path.DirectorySeparatorChar;/ 判断目标目录是否存在如果不存在则新建之if(!Directory.Exists(aimPath) Directory.CreateDirectory(aimPath);/ 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组/ 如果你指向 copy 目标文件下面的文件而不包含目录请使用下面的方法/
8、string fileList = Directory.GetFiles(srcPath);string fileList = Directory.GetFileSystemEntries(srcPath);/ 遍历所有的文件和目录foreach(string file in fileList)/ 先当作目录处理如果存在这个目录就递归 Copy 该目录下面的文件if(Directory.Exists(file)CopyDir(file,aimPath+Path.GetFileName(file);/ 否则直接 Copy 文件elseFile.Copy(file,aimPath+Path.Get
9、FileName(file),true);catch (Exception e)MessageBox.Show (e.ToString(); / =/ 实现一个静态方法将指定文件夹下面的所有内容 Detele/ 测试的时候要小心操作,删除之后无法恢复。/ =public static void DeleteDir(string aimPath)try/ 检查目标目录是否以目录分割字符结束如果不是则添加之if(aimPathaimPath.Length-1 != Path.DirectorySeparatorChar) aimPath += Path.DirectorySeparatorChar
10、;/ 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组/ 如果你指向 Delete 目标文件下面的文件而不包含目录请使用下面的方法/ string fileList = Directory.GetFiles(aimPath);string fileList = Directory.GetFileSystemEntries(aimPath);/ 遍历所有的文件和目录foreach(string file in fileList)/ 先当作目录处理如果存在这个目录就递归 Delete 该目录下面的文件if(Directory.Exists(file)DeleteDir(aimPath+
11、Path.GetFileName(file);/ 否则直接 Delete 文件elseFile.Delete (aimPath+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)/如果源文件夹不存
12、在,则创建if (!Directory.Exists(strFromPath) Directory.CreateDirectory(strFromPath); /取得要拷贝的文件夹名string strFolderName = strFromPath.Substring(strFromPath.LastIndexOf(“) + 1,strFromPath.Length - strFromPath.LastIndexOf(“) - 1); /如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹if (!Directory.Exists(strToPath + “ + strFolderNam
13、e) Directory.CreateDirectory(strToPath + “ + strFolderName);/创建数组保存源文件夹下的文件名string strFiles = Directory.GetFiles(strFromPath);/循环拷贝文件for(int i = 0;i / 读取文本文件/ private void ReadFromTxtFile()if(filePath.PostedFile.FileName != “)txtFilePath =filePath.PostedFile.FileName;fileExtName = txtFilePath.Substr
14、ing(txtFilePath.LastIndexOf(“.“)+1,3);if(fileExtName !=“txt“ elseStreamReader fileStream = new StreamReader(txtFilePath,Encoding.Default);txtContent.Text = fileStream.ReadToEnd();fileStream.Close();二获取文件列表/*/ / 获取文件列表/ private void GetFileList()string strCurDir,FileName,FileExt;/*/文件大小long FileSize;
15、/*/最后修改时间;DateTime FileModify;/*/初始化if(!IsPostBack)/*/初始化时,默认为当前页面所在的目录strCurDir = Server.MapPath(“.“);lblCurDir.Text = strCurDir;txtCurDir.Text = strCurDir;elsestrCurDir = txtCurDir.Text;txtCurDir.Text = strCurDir;lblCurDir.Text = strCurDir;FileInfo fi;DirectoryInfo dir;TableCell td;TableRow tr;tr
16、= 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.Contr
17、ols.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 FileInfo)fi = (FileInfo)fsi;