程序开发 > C# > 正文

C# 修改文件名的2种方法

亮术网 2020-09-02 本网原创

在 C# 中,修改文件名主要是通过移动方法(Move(string sourceFileName, string destFileName))实现,该方法有两个参数,分别是:sourceFileName(源文件名)、destFileName(目标文件名),即把“待修改的文件名”移到“目标文件名(修改后的文件名)”。下面两种方法虽然有些不同,但都离不开 Move 方法。

 

C# 修改文件名的2种方法

以下2种方法需要引用的命名空间:using System.Web; 和 using System.IO;

 

1、方法一:直接用 File 类的 Move 方法实现

实现过程:先把传递过来的文件相对路径转为绝对路径,如果文件存在,则用 File 类的 Move 方法把待修改文件名移到新文件名;如果不存在或发生异常,则不修改。代码如下:

/// <summary>
  /// 修改文件名
  /// </summary>
  /// <param name="srcRelativePath">待修改文件相对路径(含文件名)</param>
  /// <param name="desRelativePath">修改后的文件相对路径(含文件名)</param>
  /// <returns>真:修改成功;假:修改失败</returns>

  public bool ChangeFileName(string srcRelativePath, string desRelativePath)
  {
    srcRelativePath = HttpContext.Current.Server.MapPath(srcRelativePath);
    desRelativePath = HttpContext.Current.Server.MapPath(desRelativePath);

  try
    {
      if (File.Exists(srcRelativePath))
      {
        File.Move(srcRelativePath, desRelativePath);
        return true;
      }
      else
         return
false;
      }
    catch
    {
      return false;
    }
  }

调用方法:ChangeFileName("/Shops/test.txt", "/Shops/text.txt");

 

 

2、创建 File 类的对象,通过此对象调用 Move 方法实现

实现过程:也是先把传递过来的文件相对路径转为绝对路径,如果文件存在,新创建一个 File 类的对象 fi,然后用 fi 调用 Move 方法把待修改文件名移到新文件名;如果不存在或发生异常,则不修改。代码如下:

/// <summary>
  /// 修改文件名
  /// </summary>
  /// <param name="srcRelativePath">待修改文件相对路径(含文件名)</param>
  /// <param name="desRelativePath">修改后的文件相对路径(含文件名)</param>
  /// <returns>真:修改成功;假:修改失败</returns>

  public bool ModifyFileName(string srcRelativePath, string desRelativePath)
  {
    srcRelativePath = HttpContext.Current.Server.MapPath(srcRelativePath);
    desRelativePath = HttpContext.Current.Server.MapPath(desRelativePath);

  try
    {
      if (File.Exists(srcRelativePath))
      {
        FileInfo fi = new FileInfo(srcRelativePath);
        fi.MoveTo(desRelativePath);
        return true;
      }
      else
        return
false;
    }
    catch
    {
      return false;
    }
  }

调用方法:ModifyFileName("/Shops/test.txt", "/Shops/text.txt");

 

以上两种方法均通过 Visual Studio 2010 测试,没有错误,可以正确修改文件名。