知识大全 C# 文件操作 全收录

Posted 文件

篇首语:莫道桑榆晚,为霞尚满天。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C# 文件操作 全收录相关的知识,希望对你有一定的参考价值。

C# 文件操作 全收录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  本文收集了目前最为常用的C#经典操作文件的方法 具体内容如下 C#追加 拷贝 删除 移动文件 创建目录 递归删除文件夹及文件 指定文件夹下 面的所有内容copy到目标文件夹下面 指定文件夹下面的所有内容Detele 读取文本文件 获取文件列表 读取日志文件 写入日志文件 创建HTML 文件 CreateDirectory方法的使用

  C#追加文件

  StreamWriter sw = File AppendText(Server MapPath( )+ \\\\myText txt )

  sw WriteLine( 追逐理想 )

  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( )+ \\\\myTextCopy 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 )

  // d 指向c:\\sixAge\\sixAge

  DirectoryInfo d =d CreateSubdirectory( sixAge )

  // d 指向c:\\sixAge\\sixAge \\sixAge _

  DirectoryInfo d =d CreateSubdirectory( sixAge _ )

  // 将当前目录设为c:\\sixAge

  Directory SetCurrentDirectory( c:\\\\sixAge )

  // 创建目录c:\\sixAge\\sixAge

  Directory CreateDirectory( sixAge )

  // 创建目录c:\\sixAge\\sixAge \\sixAge _

  Directory CreateDirectory( sixAge \\\\sixAge _ )

  递归删除文件夹及文件

  <%@ Page Language=C#%>

  <%@ Import namespace= System IO %>

  <script_ runat=server>

  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+ 文件夹删除成功 )

  

  else

  Response Write(dir+ 该文件夹不存在 ) //如果文件夹不存在则提示

  

  protected void Page_Load (Object sender EventArgs e)

  

  string Dir= D:\\\\gbook\\\\ ;

  DeleteFolder(Dir) //调用函数删除文件夹

  

  // ======================================================

  // 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面

  // 如果目标文件夹为只读属性就会报错

  // April April In STU

  // ======================================================

  public static void CopyDir(string srcPath string aimPath)

  

  try

  

  // 检查目标目录是否以目录分割字符结束如果不是则添加之

  if(aimPath[aimPath Length ] != Path DirectorySeparatorChar)

  aimPath += Path DirectorySeparatorChar;

  // 判断目标目录是否存在如果不存在则新建之

  if(!Directory Exists(aimPath)) Directory CreateDirectory(aimPath)

  // 得到源目录的文件列表 该里面是包含文件以及目录路径的一个数组

  // 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法

  // 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文件

  else

  File Copy(file aimPath+Path GetFileName(file) true)

  

  

  catch (Exception e)

  

  MessageBox Show (e ToString())

  

  

  // ======================================================

  // 实现一个静态方法将指定文件夹下面的所有内容Detele

  // 测试的时候要小心操作 删除之后无法恢复

  // ======================================================

  public static void DeleteDir(string aimPath)

  

  try

  

  // 检查目标目录是否以目录分割字符结束如果不是则添加之

  if(aimPath[aimPath Length ] != Path DirectorySeparatorChar)

  aimPath += Path DirectorySeparatorChar;

  // 得到源目录的文件列表 该里面是包含文件以及目录路径的一个数组

  // 如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法

  // 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+Path GetFileName(file))

  

  

  //删除文件夹

  System IO Directory Delete (aimPath true)

  

  catch (Exception e)

  

  MessageBox Show (e ToString())

  

  

  需要引用命名空间

  using System IO;

  //// <summary>

  /// </summary>

  /// <param ></param>

  /// <param ></param>

  //

  //

  public static void CopyFolder(string strFromPath string strToPath)

  

  //如果源文件夹不存在 则创建

  if (!Directory Exists(strFromPath))

  

  Directory CreateDirectory(strFromPath)

  

  //取得要拷贝的文件夹名

  string strFolderName = strFromPath Substring(strFromPath LastIndexOf( \\\\ ) + strFromPath Length strFromPath LastIndexOf( \\\\ ) )

  //如果目标文件夹中没有源文件夹则在目标文件夹中创建源文件夹

  if (!Directory Exists(strToPath + \\\\ + strFolderName))

  

  Directory CreateDirectory(strToPath + \\\\ + strFolderName)

  

  //创建数组保存源文件夹下的文件名

  string[] strFiles = Directory GetFiles(strFromPath)

  //循环拷贝文件

  for(int i = ;i < strFiles Length;i++)

  

  //取得拷贝的文件名 只取文件名 地址截掉

  string strFileName = strFiles[i] Substring(strFiles[i] LastIndexOf( \\\\ ) + strFiles[i] Length strFiles[i] LastIndexOf( \\\\ ) )

  //开始拷贝文件 true表示覆蓋同名文件

  File Copy(strFiles[i] strToPath + \\\\ + strFolderName + \\\\ + strFileName true)

  

  //创建DirectoryInfo实例

  DirectoryInfo dirInfo = new DirectoryInfo(strFromPath)

  //取得源文件夹下的所有子文件夹名称

  DirectoryInfo[] ZiPath = dirInfo GetDirectories()

  for (int j = ;j < ZiPath Length;j++)

  

  //获取所有子文件夹名

  string strZiPath = strFromPath + \\\\ + ZiPath[j] ToString()

  //把得到的子文件夹当成新的源文件夹 从头开始新一轮的拷贝

  CopyFolder(strZiPath strToPath + \\\\ + strFolderName)

  

  

  一 读取文本文件

  /**//// <summary>

  /// 读取文本文件

  /// </summary>

  private void ReadFromTxtFile()

  

  if(filePath PostedFile FileName != )

  

  txtFilePath =filePath PostedFile FileName;

  fileExtName = txtFilePath Substring(txtFilePath LastIndexOf( )+ )

  if(fileExtName != txt && fileExtName != TXT )

  

  Response Write( 请选择文本文件 )

  

  else

  

  StreamReader fileStream = new StreamReader(txtFilePath Encoding Default)

  txtContent Text = fileStream ReadToEnd()

  fileStream Close()

  

  

  

  二 获取文件列表

  /**//// <summary>

  /// 获取文件列表

  /// </summary>

  private void GetFileList()

  

  string strCurDir FileName FileExt;

  /**////文件大小

  long FileSize;

  /**////最后修改时间

  DateTime 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 = 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 Controls 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 = ;

  /**////如果是文件

  if(fsi is FileInfo)

  

  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;

  /**////设置文件的扩展名为 文件夹

  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()+ 字节 ))

  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)

  

  

  三 读取日志文件

  /**//// <summary>

  /// 读取日志文件

  /// </summary>

  private void ReadLogFile()

  

  /**////从指定的目录以打开或者创建的形式读取日志文件

  FileStream fs = new FileStream(Server MapPath( upedFile )+ \\\\logfile txt FileMode OpenOrCreate FileAccess Read)

  /**////定义输出字符串

  StringBuilder output = new StringBuilder()

  /**////初始化该字符串的长度为

  output Length = ;

  /**////为上面创建的文件流创建读取数据流

  StreamReader read = new StreamReader(fs)

  /**////设置当前流的起始位置为文件流的起始点

  read BaseStream Seek( SeekOrigin Begin)

  /**////读取文件

  while (read Peek() > )

  

  /**////取文件的一行内容并换行

  output Append(read ReadLine() + \\n )

  

  /**////关闭释放读数据流

  read Close()

  /**////返回读到的日志文件内容

  return output ToString()

  

  四 写入日志文件

  /**//// <summary>

  /// 写入日志文件

  /// </summary>

  /// <param ></param>

  private void WriteLogFile(string input)

  

  /**////指定日志文件的目录

  string fname = Server MapPath( upedFile ) + \\\\logfile txt ;

  /**////定义文件信息对象

  FileInfo finfo = new FileInfo(fname)

  /**////判断文件是否存在以及是否大于 K

  if ( finfo Exists && finfo Length > )

  

  /**////删除该文件

  finfo Delete()

  

  /**////创建只写文件流

  using(FileStream fs = finfo OpenWrite())

  

  /**////根据上面创建的文件流创建写数据流

  StreamWriter w = new StreamWriter(fs)

  /**////设置写数据流的起始位置为文件流的末尾

  w BaseStream Seek( SeekOrigin End)

  w Write( \\nLog Entry : )

  /**////写入当前系统时间并换行

  w Write( \\r\\n DateTime Now ToLongTimeString() DateTime Now ToLongDateString())

  /**////写入日志内容并换行

  w Write(input + \\n )

  /**////写入 并换行

  w Write( \\n )

  /**////清空缓冲区内容 并把缓冲区内容写入基础流

  w Flush()

  /**////关闭写数据流

  w Close()

  

  

  五 C#创建HTML文件

  /**//// <summary>

  /// 创建HTML文件

  /// </summary>

  private void CreateHtmlFile()

  

  /**////定义和标记数目一致的数组

  string[] newContent = new string[ ];

  StringBuilder str = new StringBuilder()

  try

  

  /**////创建StreamReader对象

  using (StreamReader sr = new StreamReader(Server MapPath( createHTML ) + \\\\l ))

  

  String oneline;

  /**////读取指定的HTML文件模板

  while ((oneline = sr ReadLine()) != null)

  

  str Append(oneline)

  

  sr Close()

  

  

  catch(Exception err)

  

  /**////输出异常信息

  Response Write(err ToString())

  

  /**////为标记数组赋值

  newContent[ ] = txtTitle Text;//标题

  newContent[ ] = BackColor= #cccfff ;//背景色

  newContent[ ] = #ff ;//字体颜色

  newContent[ ] = px ;//字体大小

  newContent[ ] = txtContent Text;//主要内容

  /**////根据上面新的内容生成文件

  try

  

  /**////指定要生成的HTML文件

  string fname = Server MapPath( createHTML ) + \\\\ + DateTime Now ToString( yyyymmddhhmmss ) + l ;

  /**////替换模版文件里的标记为新的内容

  for(int i= ;i < ;i++)

  

  str Replace( $key[ +i+ ] newContent[i])

  

  /**////创建文件信息对象

  FileInfo finfo = new FileInfo(fname)

  /**////以打开或者写入的形式创建文件流

  using(FileStream fs = finfo OpenWrite())

  

  /**////根据上面创建的文件流创建写数据流

  StreamWriter sw = new StreamWriter(fs System Text Encoding GetEncoding( GB ))

  /**////把新的内容写到创建的HTML页面中

  sw WriteLine(str)

  sw Flush()

  sw Close()

  

  /**////设置超级链接的属性

  hyCreateFile Text = DateTime Now ToString( yyyymmddhhmmss )+l ;

  hyCreateFile NavigateUrl = createHTML/ +DateTime Now ToString( yyyymmddhhmmss )+l ;

  

  catch(Exception err)

  

  Response Write (err ToString())

  

  

  CreateDirectory方法的使用

  using System;

  using System IO;

  class Test

  

  public 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 already )

  return;

  

  // Try to create the directory

  DirectoryInfo di = Directory CreateDirectory(path)

  Console WriteLine( The directory was created successfully at Directory GetCreationTime(path))

  // Delete the directory

  di Delete()

  Console WriteLine( The directory was deleted successfully )

  

  catch (Exception e)

  

  Console WriteLine( The process failed: e ToString())

  

  finally

  

cha138/Article/program/net/201311/12970

相关参考

知识大全 C#编程技巧轻松实现对文件的操作

C#编程技巧轻松实现对文件的操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  和Java一样C

知识大全 c#文件的创建、读取及写入

  在c#中运用到操作流时首先要加入以下两个命名空间  usingSystemIO;  usingSystemCollections;  我总结了以下几种方式来进行IO操作很简便但却很实用  目录的创

知识大全 C#操作XML

C#操作XML  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  已知有一个XML文件(bookst

知识大全 C# FTP操作类

C#FTP操作类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近要做个用ftp读取文件并在浏

知识大全 轻松实现对文件的操作

C#编程技巧:轻松实现对文件的操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  和Java一样

知识大全 轻松实现对文件的操作

C#实用技巧:轻松实现对文件的操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  和Java一样

知识大全 轻松实现对文件的操作

C#编程实用技巧:轻松实现对文件的操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  和Java

知识大全 C#获取WAVE文件文件头信息

C#获取WAVE文件文件头信息  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!usingSystem

知识大全 C#检查文件夹和文件是否存在

C#检查文件夹和文件是否存在  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   &nbs

知识大全 根据现有C#代码文件生成扩展代码文件

根据现有C#代码文件生成扩展代码文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  为什么在这里