收藏 分销(赏)

C#文本操作.doc

上传人:xrp****65 文档编号:7683677 上传时间:2025-01-12 格式:DOC 页数:19 大小:48.50KB
下载 相关 举报
C#文本操作.doc_第1页
第1页 / 共19页
C#文本操作.doc_第2页
第2页 / 共19页
C#文本操作.doc_第3页
第3页 / 共19页
C#文本操作.doc_第4页
第4页 / 共19页
C#文本操作.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件.本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件、指定文件夹下 面的所有内容copy到目标文件夹下面、指定文件夹下面的所有内容Detele、读取文本文件、获取文件列表、读取日志文件、写入日志文件、创建HTML 文件、CreateDirectory方法的使用C#追加文件StreamWriter sw = File.AppendText(Server.MapPath(.)+myText.txt);sw.WriteLine(追逐理想);sw.

2、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(.)+myTextCopy.txt;File.Delete(delFile);C#移动文件string O

3、rignFile,NewFile;OrignFile = Server.MapPath(.)+myText.txt;NewFile = Server.MapPath(.)+myTextCopy.txt;File.Move(OrignFile,NewFile);C#创建目录/ 创建目录c:sixAgeDirectoryInfo d=Directory.CreateDirectory(c:sixAge);/ d1指向c:sixAgesixAge1DirectoryInfo d1=d.CreateSubdirectory(sixAge1);/ d2指向c:sixAgesixAge1sixAge1_1

4、DirectoryInfo d2=d1.CreateSubdirectory(sixAge1_1);/ 将当前目录设为c:sixAgeDirectory.SetCurrentDirectory(c:sixAge);/ 创建目录c:sixAgesixAge2Directory.CreateDirectory(sixAge2);/ 创建目录c:sixAgesixAge2sixAge2_1Directory.CreateDirectory(sixAge2sixAge2_1);递归删除文件夹及文件public void DeleteFolder(string dir)if (Directory.Exi

5、sts(dir) /如果存在这个文件夹删除之foreach(string d in Directory.GetFileSystemEntries(dir)if(File.Exists(d)File.Delete(d); /直接删除其中的文件elseDeleteFolder(d); /递归删除子文件夹Directory.Delete(dir); /删除已空文件夹Response.Write(dir+ 文件夹删除成功);elseResponse.Write(dir+ 该文件夹不存在); /如果文件夹不存在则提示protected void Page_Load (Object sender ,Eve

6、ntArgs 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.DirectorySeparatorChar)aimPath +=

7、 Path.DirectorySeparatorChar;/ 判断目标目录是否存在如果不存在则新建之if(!Directory.Exists(aimPath) Directory.CreateDirectory(aimPath);/ 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组/ 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法/ string fileList = Directory.GetFiles(srcPath);string fileList = Directory.GetFileSystemEntries(srcPath);/ 遍历所有的文件和目录f

8、oreach(string file in fileList)/ 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件if(Directory.Exists(file)CopyDir(file,aimPath+Path.GetFileName(file);/ 否则直接Copy文件elseFile.Copy(file,aimPath+Path.GetFileName(file),true);catch (Exception e)MessageBox.Show (e.ToString();/ =/ 实现一个静态方法将指定文件夹下面的所有内容Detele/ 测试的时候要小心操作,删除之后无法

9、恢复。/ =public static void DeleteDir(string aimPath)try/ 检查目标目录是否以目录分割字符结束如果不是则添加之if(aimPathaimPath.Length-1 != Path.DirectorySeparatorChar)aimPath += Path.DirectorySeparatorChar;/ 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组/ 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法/ string fileList = Directory.GetFiles(aimPath);string

10、fileList = Directory.GetFileSystemEntries(aimPath);/ 遍历所有的文件和目录foreach(string file in fileList)/ 先当作目录处理如果存在这个目录就递归Delete该目录下面的文件if(Directory.Exists(file)DeleteDir(aimPath+Path.GetFileName(file);/ 否则直接Delete文件elseFile.Delete (aimPath+Path.GetFileName(file);/删除文件夹System.IO .Directory .Delete (aimPath

11、,true);catch (Exception e)MessageBox.Show (e.ToString();需要引用命名空间:using System.IO;/*/ / / / /-/-public static void CopyFolder(string strFromPath,string strToPath)/如果源文件夹不存在,则创建if (!Directory.Exists(strFromPath)Directory.CreateDirectory(strFromPath);/取得要拷贝的文件夹名string strFolderName = strFromPath.Substr

12、ing(strFromPath.LastIndexOf() + 1,strFromPath.Length - strFromPath.LastIndexOf() - 1);/如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹if (!Directory.Exists(strToPath + + strFolderName)Directory.CreateDirectory(strToPath + + strFolderName);/创建数组保存源文件夹下的文件名string strFiles = Directory.GetFiles(strFromPath);/循环拷贝文件for(int

13、 i = 0;i strFiles.Length;i+)/取得拷贝的文件名,只取文件名,地址截掉。string strFileName = strFilesi.Substring(strFilesi.LastIndexOf() + 1,strFilesi.Length - strFilesi.LastIndexOf() - 1);/开始拷贝文件,true表示覆盖同名文件File.Copy(strFilesi,strToPath + + strFolderName + + strFileName,true);/创建DirectoryInfo实例DirectoryInfo dirInfo = ne

14、w DirectoryInfo(strFromPath);/取得源文件夹下的所有子文件夹名称DirectoryInfo ZiPath = dirInfo.GetDirectories();for (int j = 0;j ZiPath.Length;j+)/获取所有子文件夹名string strZiPath = strFromPath + + ZiPathj.ToString();/把得到的子文件夹当成新的源文件夹,从头开始新一轮的拷贝CopyFolder(strZiPath,strToPath + + strFolderName);一读取文本文件/*/ / 读取文本文件/ private v

15、oid ReadFromTxtFile() if(filePath.PostedFile.FileName != ) txtFilePath =filePath.PostedFile.FileName; fileExtName = txtFilePath.Substring(txtFilePath.LastIndexOf(.)+1,3); if(fileExtName !=txt & fileExtName != TXT) Response.Write(请选择文本文件); else StreamReader fileStream = new StreamReader(txtFilePath,E

16、ncoding.Default); txtContent.Text = fileStream.ReadToEnd(); fileStream.Close(); 二获取文件列表/*/ / 获取文件列表/ private void GetFileList()string strCurDir,FileName,FileExt;/*/文件大小long FileSize;/*/最后修改时间;DateTime FileModify;/*/初始化if(!IsPostBack)/*/初始化时,默认为当前页面所在的目录strCurDir = Server.MapPath(.);lblCurDir.Text =

17、strCurDir;txtCurDir.Text = strCurDir;elsestrCurDir = txtCurDir.Text;txtCurDir.Text = strCurDir;lblCurDir.Text = strCurDir;FileInfo fi;DirectoryInfo dir;TableCell td;TableRow tr;tr = new TableRow();/*/动态添加单元格内容td = new TableCell();td.Controls.Add(new LiteralControl(文件名);tr.Cells.Add(td);td = new Tabl

18、eCell();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);tableDirInfo.Rows.Add(tr);/*/针对当前目录建立目录引用对象DirectoryInfo dirInfo = new Dir

19、ectoryInfo(txtCurDir.Text);/*/循环判断当前目录下的文件和目录foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos()FileName = ;FileExt = ;FileSize = 0;/*/如果是文件if(fsi is FileInfo)fi = (FileInfo)fsi;/*/取得文件名FileName = fi.Name;/*/取得文件的扩展名FileExt = fi.Extension;/*/取得文件的大小FileSize = fi.Length;/*/取得文件的最后修改时间FileModif

20、y = fi.LastWriteTime;/*/否则是目录elsedir = (DirectoryInfo)fsi;/*/取得目录名FileName = dir.Name;/*/取得目录的最后修改时间FileModify = dir.LastWriteTime;/*/设置文件的扩展名为文件夹FileExt = 文件夹;/*/动态添加表格内容tr = new TableRow();td = new TableCell();td.Controls.Add(new LiteralControl(FileName);tr.Cells.Add(td);td = new TableCell();td.Co

21、ntrols.Add(new LiteralControl(FileExt);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(yyyy-mm-dd hh:mm:ss);tr.Cells.Add(td);tableDirInfo.Rows.Add(tr);三读取日志文件

22、/*/ / 读取日志文件/ private void ReadLogFile()/*/从指定的目录以打开或者创建的形式读取日志文件FileStream fs = new FileStream(Server.MapPath(upedFile)+logfile.txt, FileMode.OpenOrCreate, FileAccess.Read);/*/定义输出字符串StringBuilder output = new StringBuilder();/*/初始化该字符串的长度为0output.Length = 0;/*/为上面创建的文件流创建读取数据流StreamReader read = n

23、ew StreamReader(fs);/*/设置当前流的起始位置为文件流的起始点read.BaseStream.Seek(0, SeekOrigin.Begin);/*/读取文件while (read.Peek() -1)/*/取文件的一行内容并换行output.Append(read.ReadLine() + n);/*/关闭释放读数据流read.Close();/*/返回读到的日志文件内容return output.ToString();四写入日志文件/*/ / 写入日志文件/ / private void WriteLogFile(string input)/*/指定日志文件的目录st

24、ring fname = Server.MapPath(upedFile) + logfile.txt;/*/定义文件信息对象FileInfo finfo = new FileInfo(fname);/*/判断文件是否存在以及是否大于2Kif ( finfo.Exists & finfo.Length 2048 )/*/删除该文件finfo.Delete();/*/创建只写文件流using(FileStream fs = finfo.OpenWrite()/*/根据上面创建的文件流创建写数据流StreamWriter w = new StreamWriter(fs);/*/设置写数据流的起始位

25、置为文件流的末尾w.BaseStream.Seek(0, SeekOrigin.End);w.Write(nLog Entry : );/*/写入当前系统时间并换行w.Write(0 1 rn,DateTime.Now.ToLongTimeString(),DateTime.Now.ToLongDateString();/*/写入日志内容并换行w.Write(input + n);/*/写入-“并换行w.Write(-n);/*/清空缓冲区内容,并把缓冲区内容写入基础流w.Flush();/*/关闭写数据流w.Close();五C#创建HTML文件/*/ / 创建HTML文件/ private

26、 void CreateHtmlFile()/*/定义和html标记数目一致的数组string newContent = new string5;StringBuilder strhtml = new StringBuilder();try/*/创建StreamReader对象using (StreamReader sr = new StreamReader(Server.MapPath(createHTML) + template.html)String oneline;/*/读取指定的HTML文件模板while (oneline = sr.ReadLine() != null)strhtm

27、l.Append(oneline);sr.Close();catch(Exception err)/*/输出异常信息Response.Write(err.ToString();/*/为标记数组赋值newContent0 = txtTitle.Text;/标题newContent1 = BackColor=#cccfff;/背景色newContent2 = #ff0000;/字体颜色newContent3 = 100px;/字体大小newContent4 = txtContent.Text;/主要内容/*/根据上面新的内容生成html文件try/*/指定要生成的HTML文件string fnam

28、e = Server.MapPath(createHTML) + + DateTime.Now.ToString(yyyymmddhhmmss) + .html;/*/替换html模版文件里的标记为新的内容for(int i=0;i 5;i+)strhtml.Replace($htmlkey+i+,newContenti);/*/创建文件信息对象FileInfo finfo = new FileInfo(fname);/*/以打开或者写入的形式创建文件流using(FileStream fs = finfo.OpenWrite()/*/根据上面创建的文件流创建写数据流StreamWriter

29、sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding(GB2312);/*/把新的内容写到创建的HTML页面中sw.WriteLine(strhtml);sw.Flush();sw.Close();/*/设置超级链接的属性hyCreateFile.Text = DateTime.Now.ToString(yyyymmddhhmmss)+.html;hyCreateFile.NavigateUrl = createHTML/+DateTime.Now.ToString(yyyymmddhhmmss)+.html;catch(Excep

30、tion err)Response.Write (err.ToString();CreateDirectory方法的使用using System;using System.IO;class Testpublic static void Main()/ Specify the directory you want to manipulate.string path = c:MyDir;try/ Determine whether the directory exists.if (Directory.Exists(path)Console.WriteLine(That path exists al

31、ready.);return;/ Try to create the directory.DirectoryInfo di = Directory.CreateDirectory(path);Console.WriteLine(The directory was created successfully at 0., Directory.GetCreationTime(path);/ Delete the directory.di.Delete();Console.WriteLine(The directory was deleted successfully.);catch (Exception e)Console.WriteLine(The process failed: 0, e.ToString();finally

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服