ibcadmin 发表于 2019-11-8 09:57:47

C#中对文件File常用操作方法的工具类

<h1>场景</h1>
<p>C#中File类的常用读取与写入文件方法的利用:</p>
<p><a href="https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99693983">https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99693983</a></p>
<p>注:</p>
<p>博客主页:<br /><a href="https://blog.csdn.net/badao_liumang_qizhi">https://blog.csdn.net/badao_liumang_qizhi</a><br />关注公众号<br />霸道的步伐猿<br />获取编程相干电子书、教程推送与免费下载。</p>
<h1>实现</h1>
<h2>获取文件的扩展名</h2>

      /// <summary>
      /// 获取文件的扩展名
      /// </summary>
      /// <param name="filename">完备文件名</param>
      /// <returns>返回扩展名</returns>
public static string GetPostfixStr(string filename)
{
   int num = filename.LastIndexOf(".");
   int length = filename.Length;
   return filename.Substring(num, length - num);
}

<p> </p>
<h2>读取文件内容</h2>
<p></p>

      /// <summary>
      /// 读取文件内容
      /// </summary>
      /// <param name="path">要读取的文件路径</param>
      /// <returns>返回文件内容</returns>
public static string ReadFile(string path)
{
   string result;
   if (!System.IO.File.Exists(path))
   {
    result = "不存在相应的目次";
   }
   else
   {
    System.IO.FileStream stream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
    System.IO.StreamReader streamReader = new System.IO.StreamReader(stream, System.Text.Encoding.Default);
    result = streamReader.ReadToEnd();
    streamReader.Close();
    streamReader.Dispose();
   }
   return result;
}

<p> </p>
<h2>指定编码格式读取文件内容</h2>
<p>   </p>

   /// <summary>
      /// 读取文件内容
      /// </summary>
      /// <param name="path">要读取的文件路径</param>
      /// <param name="encoding">编码格式</param>
      /// <returns>返回文件内容</returns>
      public static string ReadFile(string path, System.Text.Encoding encoding)
      {
            string result;
            if (!System.IO.File.Exists(path))
            {
                result = "不存在相应的目次";
            }
            else
            {
                System.IO.FileStream stream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
                System.IO.StreamReader streamReader = new System.IO.StreamReader(stream, encoding);
                result = streamReader.ReadToEnd();
                streamReader.Close();
                streamReader.Dispose();
            }
            return result;
      }

<p> </p>
<h2>向指定文件写入内容</h2>
<p></p>

      /// <summary>
      /// 向指定文件写入内容
      /// </summary>
      /// <param name="path">要写入内容的文件完备路径</param>
      /// <param name="content">要写入的内容</param>
public static void WriteFile(string path, string content)
{
   try
   {
    object obj = new object();
    if (!System.IO.File.Exists(path))
    {
   System.IO.FileStream fileStream = System.IO.File.Create(path);
   fileStream.Close();
    }
    lock (obj)
    {
   using (System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(path, false, System.Text.Encoding.Default))
   {
      streamWriter.WriteLine(content);
      streamWriter.Close();
      streamWriter.Dispose();
   }
    }
   }
   catch (System.Exception ex)
   {
                ICSharpCode.Core.LoggingService<FileHelper>.Error(String.Format("写入文件{0}非常:{1}", path, ex.Message), ex);
   }
}

<p> </p>
<h2>指定编码格式向文件写入内容</h2>
<p> </p>

       /// <summary>
      /// 向指定文件写入内容
      /// </summary>
      /// <param name="path">要写入内容的文件完备路径</param>
      /// <param name="content">要写入的内容</param>
      /// <param name="encoding">编码格式</param>
      public static void WriteFile(string path, string content, System.Text.Encoding encoding)
      {
            try
            {
                object obj = new object();
                if (!System.IO.File.Exists(path))
                {
                  System.IO.FileStream fileStream = System.IO.File.Create(path);
                  fileStream.Close();
                }
                lock (obj)
                {
                  using (System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(path, false, encoding))
                  {
                        streamWriter.WriteLine(content);
                        streamWriter.Close();
                        streamWriter.Dispose();
                  }
                }
            }
            catch (System.Exception ex)
            {
                ICSharpCode.Core.LoggingService<FileHelper>.Error(String.Format("写入文件{0}非常:{1}", path, ex.Message), ex);
            }
      }

<p> </p>
<p> </p>
<h2>文件复制</h2>

      /// <summary>
      /// 文件复制
      /// </summary>
      /// <param name="orignFile">源文件完备路径</param>
      /// <param name="newFile">目标文件完备路径</param>
public static void FileCoppy(string orignFile, string newFile)
{
   System.IO.File.Copy(orignFile, newFile, true);
}

<p> </p>
<h2>文件删除</h2>
<p> </p>

       /// <summary>
      /// 删除文件
      /// </summary>
      /// <param name="path">要删除的文件的完备路径</param>
public static void FileDel(string path)
{
   System.IO.File.Delete(path);
}

<p> </p>
<h2>文件移动</h2>
<p> </p>

       /// <summary>
      /// 文件移动(剪贴->粘贴)
      /// </summary>
      /// <param name="orignFile">源文件的完备路径</param>
      /// <param name="newFile">目标文件完备路径</param>
public static void FileMove(string orignFile, string newFile)
{
   System.IO.File.Move(orignFile, newFile);
}

<p> </p>
<h2>判定一组文件是否都存在</h2>
<p>   </p>

   /// <summary>
      /// 判定一组文件是否都存在
      /// </summary>
      /// <param name="filePathList">文件路径List</param>
      /// <returns>文件是否全部存在</returns>
      public static bool IsFilesExist(List<string> filePathList)
      {
            bool isAllExist = true;
            foreach(string filePath in filePathList)
            {
                if(!File.Exists(filePath))
                {
                  isAllExist = false;
                }
            }
            return isAllExist;
      }

<p> </p>
<h2>创建目次</h2>
<p> </p>

       /// <summary>
      /// 创建目次
      /// </summary>
      /// <param name="orignFolder">当前目次</param>
      /// <param name="newFloder">要创建的目次名</param>
public static void FolderCreate(string orignFolder, string newFloder)
{
   System.IO.Directory.SetCurrentDirectory(orignFolder);
   System.IO.Directory.CreateDirectory(newFloder);
}

<p> </p>
<h2>删除目次</h2>
<p>   </p>

   /// <summary>
      /// 删除目次
      /// </summary>
      /// <param name="dir">要删除的目次</param>
public static void DeleteFolder(string dir)
{
   if (System.IO.Directory.Exists(dir))
   {
    string[] fileSystemEntries = System.IO.Directory.GetFileSystemEntries(dir);
    for (int i = 0; i < fileSystemEntries.Length; i++)
    {
   string text = fileSystemEntries;
   if (System.IO.File.Exists(text))
   {
      System.IO.File.Delete(text);
   }
   else
   {
      FileHelper.DeleteFolder(text);
   }
    }
    System.IO.Directory.Delete(dir);
   }
}

<p> </p>
<h2>目次内容复制</h2>
<p>   </p>

   /// <summary>
      /// 目次内容复制
      /// </summary>
      /// <param name="srcPath">源目次</param>
      /// <param name="aimPath">目标目次</param>
public static void CopyDir(string srcPath, string aimPath)
{
   try
   {
    if (aimPath != System.IO.Path.DirectorySeparatorChar)
    {
   aimPath += System.IO.Path.DirectorySeparatorChar;
    }
    if (!System.IO.Directory.Exists(aimPath))
    {
   System.IO.Directory.CreateDirectory(aimPath);
    }
    string[] fileSystemEntries = System.IO.Directory.GetFileSystemEntries(srcPath);
    string[] array = fileSystemEntries;
    for (int i = 0; i < array.Length; i++)
    {
   string text = array;
   if (System.IO.Directory.Exists(text))
   {
      FileHelper.CopyDir(text, aimPath + System.IO.Path.GetFileName(text));
   }
   else
   {
      System.IO.File.Copy(text, aimPath + System.IO.Path.GetFileName(text), true);
   }
    }
   }
   catch (System.Exception ex)
   {
    throw new System.Exception(ex.ToString());
   }
}

<p> </p>
页: [1]
查看完整版本: C#中对文件File常用操作方法的工具类