Path.ChangeExtension(String, String) 方法

定义

更改路径字符串的扩展名。

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 -> string
Public Shared Function ChangeExtension (path As String, extension As String) As String

参数

path
String

要修改的路径信息。

extension
String

新的扩展名(有或没有前导句点)。 指定 null 以从 path 移除现有扩展名。

返回

已修改的路径信息。

在基于 Windows 的桌面平台上,如果 pathnull 或空字符串 (“”),则返回的路径信息是未修改的。 如果 extensionnull,则返回的字符串包含指定的路径(其扩展名已移除)。 如果 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 可以包含多个句点和任何有效的路径字符,并且可以是任意长度。 如果 extensionnull,则返回的字符串包含带有最后句点的 的内容 path ,以及删除后的所有字符。

如果 extension 是空字符串,则返回的路径字符串包含 path 的内容,以及删除最后一个句点后的任何字符。

如果 path 没有扩展名且 extension 不是 null,则返回的字符串包含 pathextension跟 。

如果 extension 不是 null 且不包含前导句点,则添加句点。

如果 path 包含由多个句点分隔的多个扩展名,则返回的字符串将包含 与最后一个句点以及它之后的所有字符的内容 path 替换为 extension。 例如,如果 path 为“\Dir1\examples\pathtests.csx.txt”且 extension 为“cs”,则修改后的路径为“\Dir1\examples\pathtests.csx.cs”。

无法验证返回的结果是否在所有方案中都有效。 例如,如果 path 为空, extension 则追加 。

有关常见 I/O 任务的列表,请参阅 常见 I/O 任务

适用于

另请参阅