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>文件內(nèi)容</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">內(nèi)容</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>
                  /// 拷貝一個(gè)路徑下的文件夾和文件
                  /// </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>
                  /// 遞歸拷貝一個(gè)文件夾的所有文件
                  /// </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++)
                          {
                              //創(chuàng)建目錄
                              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) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 吉木乃县| 甘谷县| 大连市| 徐水县| 从江县| 延津县| 浦北县| 军事| 宿州市| 潮安县| 土默特右旗| 武威市| 平安县| 出国| 尖扎县| 大宁县| 万全县| 方正县| 汽车| 玉屏| 个旧市| 陆丰市| 休宁县| 若羌县| 米脂县| 龙海市| 张家川| 凤凰县| 正镶白旗| 嵩明县| 新建县| 边坝县| 莒南县| 新河县| 衡阳市| 石棉县| 师宗县| 安宁市| 甘谷县| 巍山| 阳城县|