using System;
          using System.Collections.Generic;
          using System.Linq;
          using System.Text;
          using System.IO;
          namespace Common.Files
          {
              public class FileOperator
              {
                  /// <summary>
                  ///
                  /// </summary>
                  /// <param name="path">文件路徑</param>
                  /// <param name="encoding">編碼</param>
                  /// <returns>文件內容</returns>
                  public string ReadFile(string path, System.Text.Encoding encoding)
                  {
                      string tempContent = "";
                      using (StreamReader sr = new StreamReader(path, encoding))
                      {
                          tempContent = sr.ReadToEnd();
                      }
                      return tempContent;
                  }
                  /// <summary>
                  ///
                  /// </summary>
                  /// <param name="path">文件的路徑</param>
                  /// <param name="append">是否追加</param>
                  /// <param name="encoding">編碼</param>
                  /// <param name="content">內容</param>
                  /// <returns>是否成功</returns>
                  public bool WriteFile(string path,bool append,System.Text.Encoding encoding,string content)
                  {
                      bool state = false;
                      try
                      {
                          using (StreamWriter sw = new StreamWriter(path, append, encoding))
                          {
                              sw.Write(content);
                              sw.Flush();
                              state = true;
                          }
                      }
                      catch
                      {
           
                      }
                      return state;
                  }
                  /// <summary>
                  /// 拷貝一個路徑下的文件夾和文件
                  /// </summary>
                  /// <param name="olddirectory"></param>
                  /// <param name="newdirectory"></param>
                  /// <returns></returns>
                  public bool CopyDirectoryAndFiles(string olddirectory, string newdirectory)
                  {
                      bool state = false;
                      try
                      {
                          DirectoryInfo dis = new DirectoryInfo(newdirectory);
                          if (!dis.Exists)
                          {
                              Directory.CreateDirectory(newdirectory);
                          }
                          CopyAll(olddirectory, newdirectory, "");
                          state = true;
                      }
                      catch
                      {
           
                      }
                      return state;
                  }
                  /// <summary>
                  /// 遞歸拷貝一個文件夾的所有文件
                  /// </summary>
                  /// <param name="olddirectory"></param>
                  /// <param name="newdirectory"></param>
                  /// <param name="dir"></param>
                  protected void CopyAll(string olddirectory, string newdirectory, string dir)
                  {
                      DirectoryInfo dis = new DirectoryInfo(dir.Length > 0 ? (dir) : (olddirectory));
                      FileInfo[] files = dis.GetFiles();
                      foreach (FileInfo fi in files)
                      {

                          try
                          {
                              //拷貝文件
                              File.Copy(fi.FullName, string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));

                          }
                          catch (Exception ex)
                          {
                              try
                              {
                                  File.Delete(string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));
                                  //string temp = ex.Message;
                                  File.Copy(fi.FullName, string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), fi.Name));
                              }
                              catch
                              {

                              }
                          }


                      }
                      if (dis.GetDirectories().Length > 0)
                      {
                          for (int i = 0; i < dis.GetDirectories().Length; i++)
                          {
                              //創建目錄
                              string tempNewPath = string.Format("{0}\\{1}", dir.Length > 0 ? (dir.Replace(olddirectory, newdirectory)) : (newdirectory), dis.GetDirectories()[i].Name);
                              if (!Directory.Exists(tempNewPath))
                                  Directory.CreateDirectory(tempNewPath);
                              CopyAll(olddirectory, newdirectory, dis.GetDirectories()[i].FullName);
                          }
                      }


                  }
                  /// <summary>
                  ///
                  /// </summary>
                  /// <param name="oldFilePath"></param>
                  /// <param name="newFilePath"></param>
                  /// <returns></returns>
                  public bool CopyFile(string oldFilePath, string newFilePath)
                  {
                      bool state = false;
                      File.Copy(oldFilePath, newFilePath);
                      return state;
                  }
                  /// <summary>
                  ///
                  /// </summary>
                  /// <param name="directory"></param>
                  /// <returns></returns>
                  public bool DelteDirectory(string directory)
                  {
                      bool state = false;
                      DeleteDirectoryAndFiles(directory);
                      return state;
                  }
                  /// <summary>
                  ///
                  /// </summary>
                  /// <param name="path"></param>
                  protected void DeleteDirectoryAndFiles(string path)
                  {
                      DirectoryInfo di = new DirectoryInfo(path);
                      if (di.GetFiles().Length > 0)
                          DeleteFiles(path);
                   
                     DirectoryInfo[] dis = di.GetDirectories();
                     if (dis.Length > 0)
                     {
                         foreach (DirectoryInfo tempdi in dis)
                         {
                         
                             DeleteDirectoryAndFiles(tempdi.FullName);
                             if (tempdi.GetFiles().Length < 1 && tempdi.GetDirectories().Length < 1)
                                 tempdi.Delete();
                         }
                     }
                  }
                  /// <summary>
                  /// 刪除文件夾的所有文件
                  /// </summary>
                  /// <param name="path"></param>
                  protected void DeleteFiles(string path)
                  {
                      DirectoryInfo di = new DirectoryInfo(path);
                      FileInfo[] fis = di.GetFiles();
                      foreach (FileInfo fi in fis)
                      {
                          try
                          {
                              fi.Delete();
                          }
                          catch
                          {
                              continue;
                          }
                      }

                  }
                

                 

              }
          }

          posted on 2010-02-03 15:17 sanmao 閱讀(681) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 驻马店市| 广灵县| 博罗县| 绥德县| 大厂| 改则县| 巩义市| 临海市| 兖州市| 卢氏县| 文昌市| 南漳县| 图片| 滨州市| 丽江市| 阳泉市| 聊城市| 若尔盖县| 林西县| 白城市| 石台县| 孟津县| 德安县| 孝感市| 乐至县| 遂溪县| 谢通门县| 英山县| 蓝山县| 邹城市| 庆安县| 吕梁市| 望都县| 绥阳县| 鱼台县| 本溪| 丰顺县| 汉沽区| 揭西县| 河曲县| 景泰县|