返回顶部

收藏

C#文件操作通用类

更多
//文件操作
  public class GF_File
  {

      /// <summary>
      /// 写日志文件
      /// </summary>
      /// <param name="sPath">    年月  例  2011-04</param>
      /// <param name="sFileName">月日  例  04-22</param>
      /// <param name="content">时间+  内容</param>
      /// <returns></returns>
      public static bool WriteLog(string sPath, string sFileName, string content)
      {
          try
          {

              StreamWriter sr;
              if (!Directory.Exists(sPath))
              {
                  Directory.CreateDirectory(sPath);
              }
              string v_filename = sPath+"\\\\"+ sFileName;

              if (!File.Exists(v_filename)) //如果文件存在,则创建File.AppendText对象
              {
                  sr = File.CreateText(v_filename);
                  sr.Close();
              }
              using (FileStream fs = new FileStream(v_filename, System.IO.FileMode.Append, System.IO.FileAccess.Write, System.IO.FileShare.Write))
              {
                  using (sr = new StreamWriter(fs))
                  {

                      sr.WriteLine(DateTime.Now.ToString("hh:mm:ss")+"     "+ content);
                      sr.Close();
                  }
                  fs.Close();
              }
              return true;

          }
          catch { return false; }
      }

      /// <summary>
      /// 读取文本文件内容,每行存入arrayList 并返回arrayList对象
      /// </summary>
      /// <param name="sFileName"></param>
      /// <returns>arrayList</returns>
      public static ArrayList ReadFileRow(string sFileName)
      {
          string sLine = "";
          ArrayList alTxt = null;
          try
          {
              using (StreamReader sr = new StreamReader(sFileName))
              {
                  alTxt = new ArrayList();

                  while (!sr.EndOfStream)
                  {
                      sLine = sr.ReadLine();
                      if (sLine != "")
                      {
                          alTxt.Add(sLine.Trim());
                      }

                  }
                  sr.Close();
              }
          }
          catch
          {

          }
          return alTxt;
      }

      /// <summary>
      /// 备份文件
      /// </summary>
      /// <param name="sourceFileName">源文件名</param>
      /// <param name="destFileName">目标文件名</param>
      /// <param name="overwrite">当目标文件存在时是否覆盖</param>
      /// <returns>操作是否成功</returns>
      public static bool BackupFile(string sourceFileName, string destFileName, bool overwrite)
      {
          if (!System.IO.File.Exists(sourceFileName))
              throw new FileNotFoundException(sourceFileName + "文件不存在!");

          if (!overwrite && System.IO.File.Exists(destFileName))
              return false;

          try
          {
              System.IO.File.Copy(sourceFileName, destFileName, true);
              return true;
          }
          catch (Exception e)
          {
              throw e;
          }
      }

      /// <summary>
      /// 备份文件,当目标文件存在时覆盖
      /// </summary>
      /// <param name="sourceFileName">源文件名</param>
      /// <param name="destFileName">目标文件名</param>
      /// <returns>操作是否成功</returns>
      public static bool BackupFile(string sourceFileName, string destFileName)
      {
          return BackupFile(sourceFileName, destFileName, true);
      }

      /// <summary>
      /// 恢复文件
      /// </summary>
      /// <param name="backupFileName">备份文件名</param>
      /// <param name="targetFileName">要恢复的文件名</param>
      /// <param name="backupTargetFileName">要恢复文件再次备份的名称,如果为null,则不再备份恢复文件</param>
      /// <returns>操作是否成功</returns>
      public static bool RestoreFile(string backupFileName, string targetFileName, string backupTargetFileName)
      {
          try
          {
              if (!System.IO.File.Exists(backupFileName))
                  throw new FileNotFoundException(backupFileName + "文件不存在!");

              if (backupTargetFileName != null)
              {
                  if (!System.IO.File.Exists(targetFileName))
                      throw new FileNotFoundException(targetFileName + "文件不存在!无法备份此文件!");
                  else
                      System.IO.File.Copy(targetFileName, backupTargetFileName, true);
              }
              System.IO.File.Delete(targetFileName);
              System.IO.File.Copy(backupFileName, targetFileName);
          }
          catch (Exception e)
          {
              throw e;
          }
          return true;
      }

      public static bool RestoreFile(string backupFileName, string targetFileName)
      {
          return RestoreFile(backupFileName, targetFileName, null);
      }
  }
//该片段来自于http://outofmemory.cn

标签:c#,.net,文件

收藏

0人收藏

支持

0

反对

0

发表评论