Path.ChangeExtension(String, String) 方法

定义

更改路径字符串的扩展。

public:
 static System::String ^ ChangeExtension(System::String ^ path, System::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 或空字符串(“),则返回未修改的路径信息。 null如果是extension,则返回的字符串包含指定路径,其扩展名已删除。 如果没有 path 扩展名, extension 并且不是 null,则返回的路径字符串包含 extension 追加到末尾 path

例外

低于 2.1 的 .NET Framework 和 .NET Core 版本: path 包含在其中 GetInvalidPathChars()定义的一个或多个无效字符。

示例

下面的示例演示了该方法的使用 ChangeExtension

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'

注解

如果两者 path 均不包含 extension 句点(.), ChangeExtension 则添加句点。

extension 参数可以包含多个句点和任何有效的路径字符,并且可以是任意长度。 null如果是extension,则返回的字符串包含path最后一个句点的内容及其删除后的所有字符。

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

如果没有 path 扩展名, extensionnull返回的字符串 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 任务

适用于

另请参阅