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.

Исключения

платформа .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'

Комментарии

Если ни path , ни extension не содержит точки (.), ChangeExtension добавляет точку.

Параметр extension может содержать несколько точек и любые допустимые символы пути и может иметь любую длину. Если extension имеет значение null, возвращаемая строка содержит содержимое с последней path точкой и все символы после нее удалены.

Если extension является пустой строкой, возвращаемая строка пути содержит содержимое path с любыми символами после последней удаленной точки.

Если path не имеет расширения и extension не nullимеет значение , возвращаемая строка содержит , за которым следует extensionpath .

Если extension параметр не null имеет и не содержит начальную точку, точка добавляется.

Если path содержит несколько расширений, разделенных несколькими точками, возвращаемая строка содержит содержимое с последней path точкой и все следующие за ней символы заменены на extension. Например, если path имеет значение "\Dir1\examples\pathtests.csx.txt", а extension — "cs", измененный путь будет "\Dir1\examples\pathtests.csx.cs".

Проверить допустимость возвращаемых результатов во всех сценариях невозможно. Например, если path параметр пуст, extension добавляется .

Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.

Применяется к

См. также раздел