Path.ChangeExtension(String, String) 方法  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
更改路径字符串的扩展名。
public:
 static System::String ^ ChangeExtension(System::String ^ path, System::String ^ extension);public static string ChangeExtension (string path, string extension);public static string? ChangeExtension (string? path, string? extension);static member ChangeExtension : string * string -> stringPublic Shared Function ChangeExtension (path As String, extension As String) As String参数
- path
- String
要修改的路径信息。
- extension
- String
新的扩展名(有或没有前导句点)。 指定 null 以从 path 移除现有扩展名。
返回
已修改的路径信息。
在基于 Windows 的桌面平台上,如果 path 是 null 或空字符串 (“”),则返回的路径信息是未修改的。 如果 extension 为 null,则返回的字符串包含指定的路径(其扩展名已移除)。 如果 path 不具有扩展名且 extension 不为 null,则返回的路径字符串包含追加到 path 结尾的 extension。
例外
.NET Framework 和 .NET Core 版本早于 2.1: path 包含 中GetInvalidPathChars()定义的一个或多个无效字符。
示例
下面的示例演示如何使用 ChangeExtension 方法。
#using <system.dll>
using namespace System;
using namespace System::IO;
void ChangeExtension()
{
   String^ goodFileName = "C:\\mydir\\myfile.com.extension";
   String^ badFileName = "C:\\mydir\\";
   String^ result;
   result = Path::ChangeExtension( goodFileName,  ".old" );
   Console::WriteLine( "ChangeExtension({0}, '.old') returns '{1}'", goodFileName, result );
   result = Path::ChangeExtension( goodFileName,  "" );
   Console::WriteLine( "ChangeExtension({0}, '') returns '{1}'", goodFileName, result );
   result = Path::ChangeExtension( badFileName,  ".old" );
   Console::WriteLine( "ChangeExtension({0}, '.old') returns '{1}'", badFileName, result );
   
   // This code produces output similar to the following:
   //
   // ChangeExtension(C:\mydir\myfile.com.extension, '.old') returns 'C:\mydir\myfile.com.old'
   // ChangeExtension(C:\mydir\myfile.com.extension, '') returns 'C:\mydir\myfile.com.'
   // ChangeExtension(C:\mydir\, '.old') returns 'C:\mydir\.old'
using System;
using System.IO;
public class PathSnippets
{
    public void ChangeExtension()
    {
        string goodFileName = @"C:\mydir\myfile.com.extension";
        string badFileName = @"C:\mydir\";
        string result;
        result = Path.ChangeExtension(goodFileName, ".old");
        Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'",
            goodFileName, result);
        result = Path.ChangeExtension(goodFileName, "");
        Console.WriteLine("ChangeExtension({0}, '') returns '{1}'",
            goodFileName, result);
        result = Path.ChangeExtension(badFileName, ".old");
        Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'",
            badFileName, result);
        // This code produces output similar to the following:
        //
        // ChangeExtension(C:\mydir\myfile.com.extension, '.old') returns 'C:\mydir\myfile.com.old'
        // ChangeExtension(C:\mydir\myfile.com.extension, '') returns 'C:\mydir\myfile.com.'
        // ChangeExtension(C:\mydir\, '.old') returns 'C:\mydir\.old'
Imports System.IO
Public Class PathSnippets
    Public Sub ChangeExtension()
        Dim goodFileName As String = "C:\mydir\myfile.com.extension"
        Dim badFileName As String = "C:\mydir\"
        Dim result As String
        result = Path.ChangeExtension(goodFileName, ".old")
        Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'", goodFileName, result)
        result = Path.ChangeExtension(goodFileName, "")
        Console.WriteLine("ChangeExtension({0}, '') returns '{1}'", goodFileName, result)
        result = Path.ChangeExtension(badFileName, ".old")
        Console.WriteLine("ChangeExtension({0}, '.old') returns '{1}'", badFileName, result)
        ' This code produces output similar to the following:
        '
        ' ChangeExtension(C:\mydir\myfile.com.extension, '.old') returns 'C:\mydir\myfile.com.old'
        ' ChangeExtension(C:\mydir\myfile.com.extension, '') returns 'C:\mydir\myfile.com.'
        ' ChangeExtension(C:\mydir\, '.old') returns 'C:\mydir\.old'
注解
如果 和 extension 都不包含path句点 (.) ,ChangeExtension则添加句点。
参数 extension 可以包含多个句点和任何有效的路径字符,并且可以是任意长度。 如果 extension 为 null,则返回的字符串包含带有最后句点的 的内容 path ,以及删除后的所有字符。
如果 extension 是空字符串,则返回的路径字符串包含 path 的内容,以及删除最后一个句点后的任何字符。
如果 path 没有扩展名且 extension 不是 null,则返回的字符串包含 path 后 extension跟 。
如果 extension 不是 null 且不包含前导句点,则添加句点。
如果 path 包含由多个句点分隔的多个扩展名,则返回的字符串将包含 与最后一个句点以及它之后的所有字符的内容 path 替换为 extension。 例如,如果 path 为“\Dir1\examples\pathtests.csx.txt”且 extension 为“cs”,则修改后的路径为“\Dir1\examples\pathtests.csx.cs”。
无法验证返回的结果是否在所有方案中都有效。 例如,如果 path 为空, extension 则追加 。
有关常见 I/O 任务的列表,请参阅 常见 I/O 任务。