C#怎么追加、复制、删除与文件夹

发布时间:2021-07-16 18:57:12 作者:chen
来源:亿速云 阅读:159

本篇内容主要讲解“C#怎么追加、复制、删除与文件夹”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么追加、复制、删除与文件夹”吧!

C#文件操作:C#追加文件

StreamWriter sw = File.AppendText(  Server.MapPath(".")+"\\myText.txt");   sw.WriteLine("追逐理想");   sw.WriteLine("kzlll");   sw.WriteLine(".NET笔记");   sw.Flush();   sw.Close();

C#文件操作:C#拷贝文件

string OrignFile,NewFile;   OrignFile = Server.MapPath(  ".")+"\\myText.txt";   NewFile = Server.MapPath(  ".")+"\\myTextCopy.txt";   File.Copy(OrignFile,NewFile,true);

C#文件操作:C#删除文件

string delFile = Server.MapPath(  ".")+"\\myTextCopy.txt";   File.Delete(delFile);

C#文件操作:C#移动文件

string OrignFile,NewFile;   OrignFile = Server.MapPath(  ".")+"\\myText.txt";   NewFile = Server.MapPath(  ".")+"\\myTextCopy.txt";   File.Move(OrignFile,NewFile);

C#文件操作:C#创建目录

// 创建目录c:\sixAge   DirectoryInfo d=  Directory.CreateDirectory("c:\\sixAge");   // d1指向c:\sixAge\sixAge1   DirectoryInfo d1=  d.CreateSubdirectory("sixAge1");   // d2指向c:\sixAge\sixAge1\sixAge1_1   DirectoryInfo d2=  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"%〉  〈Scriptrunat=server〉  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(Object  sender,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;   /**////〈summary〉  ///拷贝文件夹(包括子文件夹)到指定文件夹下,  源文件夹和目标文件夹均需绝对路径.  格式:CopyFolder(源文件夹,目标文件夹);  ///〈/summary〉  ///〈paramname="strFromPath"〉〈/param〉  ///〈paramname="strToPath"〉〈/param〉   //----------------------------------------  //作者:明天去要饭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〈strFiles.Length;i++)  {  //取得拷贝的文件名,只取文件名,地址截掉。  stringstrFileName=strFiles[i].Substring(  strFiles[i].LastIndexOf("\\")+1,  strFiles[i].Length-strFiles[i].  LastIndexOf("\\")-1);  //开始拷贝文件,true表示覆盖同名文件  File.Copy(strFiles[i],strToPath+"\\" +strFolderName+"\\"+strFileName,true);  }   //创建DirectoryInfo实例  DirectoryInfodirInfo=newDirectoryInfo(  strFromPath);  //取得源文件夹下的所有子文件夹名称  DirectoryInfo[]ZiPath=dirInfo.GetDirectories();  for(intj=0;j〈ZiPath.Length;j++)  {  //获取所有子文件夹名  stringstrZiPath=strFromPath+"\\"+  ZiPath[j].ToString();  //把得到的子文件夹当成新的源文件夹,  从头开始新一轮的拷贝  CopyFolder(strZiPath,strToPath+"\\"+  strFolderName);  }  }

C#文件操作:读取文本文件

1/**//// 〈summary〉  2/// 读取文本文件  3/// 〈/summary〉  4private void ReadFromTxtFile()  5{  6    if(filePath.PostedFile.  FileName != "")  7    {  8    txtFilePath =  filePath.PostedFile.FileName;  9    fileExtName =   txtFilePath.Substring(txtFilePath.  LastIndexOf(".")+1,3);  10  11   if(fileExtName !="txt" &&   fileExtName != "TXT")  12   {  13   Response.Write("请选择文本文件");  14   }  15   else 16   {  17   StreamReader fileStream =   new StreamReader(txtFilePath,Encoding.Default);  18   txtContent.Text = fileStream.ReadToEnd();  19   fileStream.Close();  20   }  21   }  22 }

C#文件操作:获取文件列表

1/**//// 〈summary〉  2/// 获取文件列表  3/// 〈/summary〉  4private void GetFileList()  5{  6  string strCurDir,FileName,FileExt;  7      8    /**////文件大小  9    long FileSize;  10      11    /**////***修改时间;  12    DateTime FileModify;  13  14    /**////初始化  15    if(!IsPostBack)  16    {  17  /**////初始化时,默认为当前页面所在的目录  18     strCurDir = Server.MapPath(".");  19     lblCurDir.Text = strCurDir;  20     txtCurDir.Text = strCurDir;  21    }  22    else 23    {  24     strCurDir = txtCurDir.Text;  25     txtCurDir.Text = strCurDir;  26     lblCurDir.Text = strCurDir;  27    }  28    FileInfo fi;  29    DirectoryInfo dir;  30    TableCell td;  31    TableRow tr;  32    tr = new TableRow();  33      34    /**////动态添加单元格内容  35    td = new TableCell();  36    td.Controls.Add(new LiteralControl(  "文件名"));  37    tr.Cells.Add(td);  38    td = new TableCell();  39    td.Controls.Add(new LiteralControl(  "文件类型"));  40    tr.Cells.Add(td);  41    td = new TableCell();  42    td.Controls.Add(new LiteralControl(  "文件大小"));  43    tr.Cells.Add(td);  44    td = new TableCell();  45    td.Controls.Add(new LiteralControl(  "***修改时间"));  46    tr.Cells.Add(td);  47  48    tableDirInfo.Rows.Add(tr);  49      50    /**////针对当前目录建立目录引用对象  51    DirectoryInfo dirInfo = new DirectoryInfo(  txtCurDir.Text);  52      53    /**////循环判断当前目录下的文件和目录  54    foreach(FileSystemInfo fsi in dirInfo.  GetFileSystemInfos())  55    {  56      FileName = "";  57      FileExt = "";  58      FileSize = 0;  59          60      /**////如果是文件  61      if(fsi is FileInfo)  62      {  63      fi = (FileInfo)fsi;  64              65      /**////取得文件名  66      FileName = fi.Name;  67              68     /**////取得文件的扩展名  69     FileExt = fi.Extension;  70              71    /**////取得文件的大小  72    FileSize = fi.Length;  73              74   /**////取得文件的***修改时间  75   FileModify = fi.LastWriteTime;  76   }  77  78   /**////否则是目录  79   else 80    {  81    dir = (DirectoryInfo)fsi;  82              83     /**////取得目录名  84     FileName = dir.Name;  85              86     /**////取得目录的***修改时间  87     FileModify = dir.LastWriteTime;  88              89     /**////设置文件的扩展名为"文件夹" 90    FileExt = "文件夹";  91     }  92          93    /**////动态添加表格内容  94        tr = new TableRow();  95        td = new TableCell();  96        td.Controls.Add(new LiteralControl(  FileName));  97        tr.Cells.Add(td);  98        td = new TableCell();  99        td.Controls.Add(new LiteralControl(  FileExt));  100        tr.Cells.Add(td);  101        td = new TableCell();  102        td.Controls.Add(new LiteralControl(  FileSize.ToString()+"字节"));  103        tr.Cells.Add(td);  104        td = new TableCell();  105        td.Controls.Add(new LiteralControl(  FileModify.ToString("yyyy-mm-dd hh:mm:ss")));  106        tr.Cells.Add(td);  107        tableDirInfo.Rows.Add(tr);  108    }  109}

C#文件操作:读取日志文件

1/**//// 〈summary〉  2/// 读取日志文件  3/// 〈/summary〉  4private void ReadLogFile()  5{  6    /**////从指定的目录以打  开或者创建的形式读取日志文件  7    FileStream fs =   new FileStream(Server.MapPath("upedFile" )+"\\logfile.txt", FileMode.OpenOrCreate,   FileAccess.Read);  8  9    /**////定义输出字符串  10    StringBuilder output =   new StringBuilder();  11      12    /**////初始化该字符串的长度为0  13    output.Length = 0;  14      15    /**////为上面创建的文件流创建读取数据流  16    StreamReader read = new StreamReader(fs);  17      18    /**////设置当前流的起始位置为文件流的起始点  19    read.BaseStream.Seek(0, SeekOrigin.Begin);  20      21    /**////读取文件  22    while (read.Peek() 〉 -1)   23    {  24        /**////取文件的一行内容并换行  25        output.Append(read.ReadLine() + "\n");  26    }  27      28    /**////关闭释放读数据流  29    read.Close();  30      31    /**////返回读到的日志文件内容  32    return output.ToString();  33}

C#文件操作:写入日志文件

1/**//// 〈summary〉  2/// 写入日志文件  3/// 〈/summary〉  4/// 〈param name="input"〉〈/param〉  5private void WriteLogFile(string input)  6{      7    /**////指定日志文件的目录  8    string fname = Server.MapPath(  "upedFile") + "\\logfile.txt";  9    /**////定义文件信息对象  10    FileInfo finfo = new FileInfo(fname);  11  12    /**////判断文件是否存在以及是否大于2K  13    if ( finfo.Exists && finfo.Length 〉   2048 )  14    {  15        /**////删除该文件  16        finfo.Delete();  17    }  18    /**////创建只写文件流  19   using(FileStream fs = finfo.OpenWrite())  20    {  21   /**////根据上面创建的文件流创建写数据流  22   StreamWriter w = new StreamWriter(fs);  23          24    /**////设置写数据流的起始位置为文件流的末尾  25   w.BaseStream.Seek(0, SeekOrigin.End);  26          27    /**////写入“Log Entry : ”  28    w.Write("\nLog Entry : ");  29          30   /**////写入当前系统时间并换行  31    w.Write("{0} {1} \r\n", DateTime.Now.  ToLongTimeString(),  32     DateTime.Now.ToLongDateString());  33          34    /**////写入日志内容并换行  35    w.Write(input + "\n");  36          37    /**////写入----------------“并换行  38    w.Write("------------------\n");  39          40  /**////清空缓冲区内容,并把缓冲区内容写入基础流  41   w.Flush();  42          43        /**////关闭写数据流  44        w.Close();  45    }  46}

C#文件操作:创建HTML文件

1/**//// 〈summary〉  2/// 创建HTML文件  3/// 〈/summary〉  4private void CreateHtmlFile()  5{      6    /**////定义和html标记数目一致的数组  7    string[] newContent = new string[5];  8    StringBuilder strhtml =   new StringBuilder();  9    try   10    {  11    /**////创建StreamReader对象  12    using (StreamReader sr =   new StreamReader(Server.MapPath("  createHTML") + "\\template.html"))   13        {  14     String oneline;  15              16     /**////读取指定的HTML文件模板  17     while ((oneline = sr.ReadLine())   != null)   18     {  19     strhtml.Append(oneline);  20            }  21     sr.Close();  22        }  23    }  24    catch(Exception err)  25    {  26        /**////输出异常信息  27        Response.Write(err.ToString());  28    }  29    /**////为标记数组赋值  30    newContent[0] = txtTitle.Text;//标题  31    newContent[1] = "BackColor='  #cccfff'";//背景色  32    newContent[2] = "#ff0000";//字体颜色  33    newContent[3] = "100px";//字体大小  34    newContent[4] = txtContent.Text;//主要内容  35  36    /**////根据上面新的内容生成html文件  37    try  38    {  39    /**////指定要生成的HTML文件  40    string fname = Server.MapPath(  "createHTML") +"\\" + DateTime.Now.ToString(  "yyyymmddhhmmss") + ".html";  41          42   /**////替换html模版文件里的标记为新的内容  43   for(int i=0;i 〈 5;i++)  44   {  45    strhtml.Replace("$htmlkey["+i+"]",newContent[i]);  46    }  47    /**////创建文件信息对象  48    FileInfo finfo = new FileInfo(fname);  49          50    /**////以打开或者写入的形式创建文件流  51    using(FileStream fs = finfo.OpenWrite())  52   {  53    /**////根据上面创建的文件流创建写数据流  54  StreamWriter sw = new StreamWriter(fs,System.  Text.Encoding.GetEncoding("GB2312"));  55              56   /**////把新的内容写到创建的HTML页面中  57   sw.WriteLine(strhtml);  58   sw.Flush();  59   sw.Close();  60   }  61          62   /**////设置超级链接的属性  63  hyCreateFile.Text =   DateTime.Now.ToString("yyyymmddhhmmss")+".html";  64  hyCreateFile.NavigateUrl = "  createHTML/"+DateTime.Now.ToString(" yyyymmddhhmmss")+".html";  65    }  66    catch(Exception err)  67    {   68        Response.Write (err.ToString());  69    }  70 }

到此,相信大家对“C#怎么追加、复制、删除与文件夹”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. C#中如何实现复制与删除文件
  2. node删除、复制文件或文件夹示例代码

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:C#转义字符双引号的实现方法

下一篇:Web开发中客户端跳转与服务器端跳转有什么区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》