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
имеет значение , возвращаемая строка содержит , за которым следует extension
path
.
Если extension
параметр не null
имеет и не содержит начальную точку, точка добавляется.
Если path
содержит несколько расширений, разделенных несколькими точками, возвращаемая строка содержит содержимое с последней path
точкой и все следующие за ней символы заменены на extension
. Например, если path
имеет значение "\Dir1\examples\pathtests.csx.txt", а extension
— "cs", измененный путь будет "\Dir1\examples\pathtests.csx.cs".
Проверить допустимость возвращаемых результатов во всех сценариях невозможно. Например, если path
параметр пуст, extension
добавляется .
Список распространенных задач ввода-вывода см. в разделе Общие задачи ввода-вывода.