c#操作文本.docx
- 文档编号:30207732
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:20
- 大小:19.46KB
c#操作文本.docx
《c#操作文本.docx》由会员分享,可在线阅读,更多相关《c#操作文本.docx(20页珍藏版)》请在冰豆网上搜索。
c#操作文本
c#创建文本
privateconststringFILE_NAME="ErroLog.txt";
publicstaticvoidWriteFile(stringstr)
...{
StreamWritersr;
if(File.Exists(FILE_NAME))//如果文件存在,则创建File.AppendText对象
...{
sr=File.AppendText(FILE_NAME);
}
else//如果文件不存在,则创建File.CreateText对象
...{
sr=File.CreateText(FILE_NAME);
}
sr.WriteLine(str);
sr.Close();
}
C#追加文件
StreamWritersw=File.AppendText(Server.MapPath(".")+"\\myText.txt");
sw.WriteLine("追逐理想");
sw.WriteLine("kzlll");
sw.WriteLine(".NET笔记");
sw.Flush();
sw.Close();
C#拷贝文件
stringOrignFile,NewFile;
OrignFile=Server.MapPath(".")+"\\myText.txt";
NewFile=Server.MapPath(".")+"\\myTextCopy.txt";
File.Copy(OrignFile,NewFile,true);
C#删除文件
stringdelFile=Server.MapPath(".")+"\\myTextCopy.txt";
File.Delete(delFile);
C#移动文件
stringOrignFile,NewFile;
OrignFile=Server.MapPath(".")+"\\myText.txt";
NewFile=Server.MapPath(".")+"\\myTextCopy.txt";
File.Move(OrignFile,NewFile);
C#创建目录
//创建目录c:
\sixAge
DirectoryInfod=Directory.CreateDirectory("c:
\\sixAge");
//d1指向c:
\sixAge\sixAge1
DirectoryInfod1=d.CreateSubdirectory("sixAge1");
//d2指向c:
\sixAge\sixAge1\sixAge1_1
DirectoryInfod2=d1.CreateSubdirectory("sixAge1_1");
//将当前目录设为c:
\sixAge
Directory.SetCurrentDirectory("c:
\\sixAge");
//创建目录c:
\sixAge\sixAge2
Directory.CreateDirectory("sixAge2");
//创建目录c:
\sixAge\sixAge2\sixAge2_1
Directory.CreateDirectory("sixAge2\\sixAge2_1");
递归删除文件夹及文件
<%@PageLanguage=C#%>
<%@Importnamespace="System.IO"%>
publicvoidDeleteFolder(stringdir)
{
if(Directory.Exists(dir))//如果存在这个文件夹删除之
{
foreach(stringdinDirectory.GetFileSystemEntries(dir))
{
if(File.Exists(d))
File.Delete(d);//直接删除其中的文件
else
DeleteFolder(d);//递归删除子文件夹
}
Directory.Delete(dir);//删除已空文件夹
Response.Write(dir+"文件夹删除成功");
}
else
Response.Write(dir+"该文件夹不存在");//如果文件夹不存在则提示
}
protectedvoidPage_Load(Objectsender,EventArgse)
{
stringDir="D:
\\gbook\\11";
DeleteFolder(Dir);//调用函数删除文件夹
}
//======================================================
//实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面
//如果目标文件夹为只读属性就会报错。
//April18April2005InSTU
//======================================================
publicstaticvoidCopyDir(stringsrcPath,stringaimPath)
{
try
{
//检查目标目录是否以目录分割字符结束如果不是则添加之
if(aimPath[aimPath.Length-1]!
=Path.DirectorySeparatorChar)
aimPath+=Path.DirectorySeparatorChar;
//判断目标目录是否存在如果不存在则新建之
if(!
Directory.Exists(aimPath))Directory.CreateDirectory(aimPath);
//得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
//如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
//string[]fileList=Directory.GetFiles(srcPath);
string[]fileList=Directory.GetFileSystemEntries(srcPath);
//遍历所有的文件和目录
foreach(stringfileinfileList)
{
//先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if(Directory.Exists(file))
CopyDir(file,aimPath+Path.GetFileName(file));
//否则直接Copy文件
else
File.Copy(file,aimPath+Path.GetFileName(file),true);
}
}
catch(Exceptione)
{
MessageBox.Show(e.ToString());
}
}
//======================================================
//实现一个静态方法将指定文件夹下面的所有内容Detele
//测试的时候要小心操作,删除之后无法恢复。
//April18April2005InSTU
//======================================================
publicstaticvoidDeleteDir(stringaimPath)
{
try
{
//检查目标目录是否以目录分割字符结束如果不是则添加之
if(aimPath[aimPath.Length-1]!
=Path.DirectorySeparatorChar)
aimPath+=Path.DirectorySeparatorChar;
//得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
//如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法
//string[]fileList=Directory.GetFiles(aimPath);
string[]fileList=Directory.GetFileSystemEntries(aimPath);
//遍历所有的文件和目录
foreach(stringfileinfileList)
{
//先当作目录处理如果存在这个目录就递归Delete该目录下面的文件
if(Directory.Exists(file))
{
DeleteDir(aimPath+Path.GetFileName(file));
}
//否则直接Delete文件
else
{
File.Delete(aimPath+Path.GetFileName(file));
}
}
//删除文件夹
System.IO.Directory.Delete(aimPath,true);
}
catch(Exceptione)
{
MessageBox.Show(e.ToString());
}
}
需要引用命名空间:
usingSystem.IO;
///
///拷贝文件夹(包括子文件夹)到指定文件夹下,源文件夹和目标文件夹均需绝对路径.格式:
CopyFolder(源文件夹,目标文件夹);
///
///
///
//--------------------------------------------------
//作者:
明天去要饭QQ:
305725744
//---------------------------------------------------
publicstaticvoidCopyFolder(stringstrFromPath,stringstrToPath)
{
//如果源文件夹不存在,则创建
if(!
Directory.Exists(strFromPath))
{
Directory.CreateDirectory(strFromPath);
}
//取得要拷贝的文件夹名
stringstrFolderName=strFromPath.Substring(strFromPath.LastIndexOf("\\")+1,strFromPath.Length-strFromPath.LastIndexOf("\\")-1);
//如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹
if(!
Directory.Exists(strToPath+"\\"+strFolderName))
{
Directory.CreateDirectory(strToPath+"\\"+strFolderName);
}
//创建数组保存源文件夹下的文件名
string[]strFiles=Directory.GetFiles(strFromPath);
//循环拷贝文件
for(inti=0;i { //取得拷贝的文件名,只取文件名,地址截掉。 stringstrFileName=strFiles.Substring(strFiles.LastIndexOf("\\")+1,strFiles.Length-strFiles.LastIndexOf("\\")-1); //开始拷贝文件,true表示覆盖同名文件 File.Copy(strFiles,strToPath+"\\"+strFolderName+"\\"+strFileName,true); } //创建DirectoryInfo实例 DirectoryInfodirInfo=newDirectoryInfo(strFromPath); //取得源文件夹下的所有子文件夹名称 DirectoryInfo[]ZiPath=dirInfo.GetDirectories(); for(intj=0;j { //获取所有子文件夹名 stringstrZiPath=strFromPath+"\\"+ZiPath[j].ToString(); //把得到的子文件夹当成新的源文件夹,从头开始新一轮的拷贝 CopyFolder(strZiPath,strToPath+"\\"+strFolderName); } } 一.读取文本文件 1/// 2///读取文本文件 3/// 4privatevoidReadFromTxtFile() 5{ 6if(filePath.PostedFile.FileName! ="") 7{ 8txtFilePath=filePath.PostedFile.FileName; 9fileExtName=txtFilePath.Substring(txtFilePath.LastIndexOf(".")+1,3); 10 11if(fileExtName! ="txt"&&fileExtName! ="TXT") 12{ 13Response.Write("请选择文本文件"); 14} 15else 16{ 17StreamReaderfileStream=newStreamReader(txtFilePath,Encoding.Default); 18txtContent.Text=fileStream.ReadToEnd(); 19fileStream.Close(); 20} 21} 22} 二.获取文件列表 1/// 2///获取文件列表 3/// 4privatevoidGetFileList() 5{ 6stringstrCurDir,FileName,FileExt; 7 8///文件大小 9longFileSize; 10 11///最后修改时间; 12DateTimeFileModify; 13 14///初始化 15if(! IsPostBack) 16{ 17///初始化时,默认为当前页面所在的目录 18strCurDir=Server.MapPath("."); 19lblCurDir.Text=strCurDir; 20txtCurDir.Text=strCurDir; 21} 22else 23{ 24strCurDir=txtCurDir.Text; 25txtCurDir.Text=strCurDir; 26lblCurDir.Text=strCurDir; 27} 28FileInfofi; 29DirectoryInfodir; 30TableCelltd; 31TableRowtr; 32tr=newTableRow(); 33 34///动态添加单元格内容 35td=newTableCell(); 36td.Controls.Add(newLiteralControl("文件名")); 37tr.Cells.Add(td); 38td=newTableCell(); 39td.Controls.Add(newLiteralControl("文件类型")); 40tr.Cells.Add(td); 41td=newTableCell(); 42td.Controls.Add(newLiteralControl("文件大小")); 43tr.Cells.Add(td); 44td=newTableCell(); 45td.Controls.Add(newLiteralControl("最后修改时间")); 46tr.Cells.Add(td); 47 48tableDirInfo.Rows.Add(tr); 49 50///针对当前目录建立目录引用对象 51DirectoryInfodirInfo=newDirectoryInfo(txtCurDir.Text); 52 53///循环判断当前目录下的文件和目录 54foreach(FileSystemInfofsiindirInfo.GetFileSystemInfos()) 55{ 56FileName=""; 57FileExt=""; 58FileSize=0; 59 60///如果是文件 61if(fsiisFileInfo) 62{ 63fi=(FileInfo)fsi; 64 65///取得文件名 66FileName=fi.Name; 67 68///取得文件的扩展名 69FileExt=fi.Extension; 70 71///取得文件的大小 72FileSize=fi.Length; 73 74///取得文件的最后修改时间 75FileModify=fi.LastWriteTime; 76} 77 78///否则是目录 79else 80{ 81dir=(DirectoryInfo)fsi; 82 83///取得目录名 84FileName=dir.Name; 85 86///取得目录的最后修改时间 87FileModify=dir.LastWriteTime; 88 89///设置文件的扩展名为"文件夹" 90FileExt="文件夹"; 91} 92 93///动态添加表格内容 94tr=newTableRow(); 95td=newTableCell(); 96td.Controls.Add(newLiteralControl(FileName)); 97tr.Cells.Add(td); 98td=newTableCell(); 99td.Controls.Add(newLiteralControl(FileExt)); 100tr.Cells.Add(td); 101td=newTableCell(); 102td.Controls.Add(newLiteralControl(FileSize.ToString()+"字节")); 103tr.Cells.Add(td); 104td=newTableCell(); 105td.Controls.Add(newLiteralControl(FileModify.ToString("yyyy-mm-ddhh: mm: ss"))); 106tr.Cells.Add(td); 107tableDirInfo.Rows.Add(tr); 108} 109} 三.读取日志文件 1/// 2///读取日志文件 3/// 4privatevoidReadLogFile() 5{ 6///从指定的目录以打开或者创建的形式读取日志文件 7FileStreamfs=newFileStream(Server.MapPath("upedFile")+"\\logfile.txt",FileMode.OpenOrCreate,FileAccess.Read); 8 9///定义输出字符串 10StringBuilderoutput=newStringBuilder(); 11 12///初始化该字符串的长度为0 13output.Length=0; 14 15///为上面创建的文件流创建读取数据流 16StreamReaderread=newStreamReader(fs); 17 18///设置当前流的起始位置为文件流的起始点 19read.BaseStream.Seek(0,SeekOrigin.Begin); 20 21///读取文件 22while(read.Peek()>-1) 23{ 24///取文件的一行内容并换行 25output.Append(read.ReadLine()+"\n"); 26} 27 28///关闭释放读数据流 29read.Close(); 30 31///返回读到的日志文件内容 32returnoutput.ToString(); 33} 四.写入日志文件 1/// 2///写入日志文件 3/// 4/// 5privatevoidWriteLogFile(stringinput) 6{ 7///指定日志文件的目录 8stringfname=Server.MapPath("upedFile")+"\\logfile.txt"; 9///定义文件信息对象 10FileInfofinfo=newFileInfo(fname); 11 12///判断文件是否存在以及是否大于2K 13if(finfo.Exists&&finfo.Length>2048) 14{ 15///删除该文件 16finfo.Delete(); 17} 18///创建只写文件流 19using(FileStreamfs=finfo.OpenWrite()) 20{ 21///根据上面创建的文件流创建写数据流 22StreamWriterw=newStreamWriter(fs); 23 24///设置写数据流的起始位置为文件流的末尾 25w.BaseStream.Seek(0,SeekOrigin.End); 26 27///写入“LogEntry: ” 28w.Write("\nLogEntry: "); 29 30///写入当前系统时间并换行 31w.Write("{0}{1}\r\n",DateTime.Now.ToLongTimeString(), 32DateTime.Now.ToLongDateString()); 33 34///写入日志
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 操作 文本