语言

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的桌面平台上,如果 path 为 null 或空字符串(“),则返回未修改的路径信息。 extension如果是null,则返回的字符串包含指定路径,其扩展名已删除。 如果没有 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 参数可以包含多个句点和任何有效的路径字符,并且可以是任意长度。 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 任务。

适用于

另请参阅