Path.ChangeExtension(String, String) Metoda

Definicja

Zmienia rozszerzenie ciągu ścieżki.Changes the extension of a path 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

Parametry

path
String

Informacje o ścieżce do zmodyfikowania.The path information to modify.

extension
String

Nowe rozszerzenie (z kropką lub bez niego).The new extension (with or without a leading period). Określ null , aby usunąć istniejące rozszerzenie z path .Specify null to remove an existing extension from path.

Zwraca

String

Informacje o zmodyfikowanej ścieżce.The modified path information.

W przypadku platform klasycznych opartych na systemie Windows, jeśli path jest null lub jest pustym ciągiem (""), informacje o ścieżce są zwracane niemodyfikowane.On Windows-based desktop platforms, if path is null or an empty string (""), the path information is returned unmodified. Jeśli extension jest null , zwracany ciąg zawiera określoną ścieżkę z usuniętym rozszerzeniem.If extension is null, the returned string contains the specified path with its extension removed. Jeśli nie path ma rozszerzenia i extension nie jest null , zwracany ciąg ścieżki zawiera extension dołączenie na końcu path .If path has no extension, and extension is not null, the returned path string contains extension appended to the end of path.

Wyjątki

Wersje .NET Framework i .NET Core starsze niż 2,1: path zawiera co najmniej jeden nieprawidłowy znak zdefiniowany w GetInvalidPathChars() ..NET Framework and .NET Core versions older than 2.1: path contains one or more of the invalid characters defined in GetInvalidPathChars().

Przykłady

Poniższy przykład ilustruje użycie ChangeExtension metody.The following example demonstrates a use of the ChangeExtension method.

#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'

Uwagi

Jeśli ani path nie extension zawiera kropki (.), program ChangeExtension dodaje okres.If neither path nor extension contains a period (.), ChangeExtension adds the period.

extensionParametr może zawierać wiele okresów i wszystkie prawidłowe ścieżki oraz może mieć dowolną długość.The extension parameter can contain multiple periods and any valid path characters, and can be any length. Jeśli extension jest null , zwracany ciąg zawiera zawartość path z ostatnim kropką i wszystkie znaki po usunięciu.If extension is null, the returned string contains the contents of path with the last period and all characters following it removed.

Jeśli extension jest pustym ciągiem, zwracany ciąg ścieżki zawiera zawartość path z dowolnymi znakami po ostatnim okresie.If extension is an empty string, the returned path string contains the contents of path with any characters following the last period removed.

Jeśli nie path ma rozszerzenia i extension nie jest null , zwracany ciąg zawiera path extension .If path does not have an extension and extension is not null, the returned string contains path followed by extension.

Jeśli nie extension jest null i nie zawiera kropki wiodącej, zostanie dodany okres.If extension is not null and does not contain a leading period, the period is added.

Jeśli path zawiera wiele rozszerzeń rozdzielonych przez wiele okresów, zwracany ciąg zawiera zawartość path z ostatnim kropką i wszystkie znaki po zastąpieniu przez extension .If path contains a multiple extension separated by multiple periods, the returned string contains the contents of path with the last period and all characters following it replaced by extension. Na przykład jeśli path jest "\Dir1\examples\pathtests.csx.txt" i extension jest "CS", modyfikowaną ścieżką jest "\Dir1\examples\pathtests.CSX.cs".For example, if path is "\Dir1\examples\pathtests.csx.txt" and extension is "cs", the modified path is "\Dir1\examples\pathtests.csx.cs".

Nie można sprawdzić, czy zwracane wyniki są prawidłowe we wszystkich scenariuszach.It is not possible to verify that the returned results are valid in all scenarios. Na przykład, jeśli path jest pusty, extension jest dołączony.For example, if path is empty, extension is appended.

Aby uzyskać listę typowych zadań we/wy, zobacz typowe zadania we/wy.For a list of common I/O tasks, see Common I/O Tasks.

Dotyczy