Udostępnij za pośrednictwem


Path.ChangeExtension(String, String) Metoda

Definicja

Zmienia rozszerzenie ciągu ścieżki.

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.

extension
String

Nowe rozszerzenie (z lub bez okresu wiodącego). Określ, null aby usunąć istniejące rozszerzenie z pathprogramu .

Zwraca

Zmodyfikowane informacje o ścieżce.

Na platformach klasycznych opartych na systemie Windows, jeśli path jest lub pusty null ciąg (""), informacje o ścieżce są zwracane niezmodyfikowane. Jeśli extension jest nullto , zwracany ciąg zawiera określoną ścieżkę z usuniętym rozszerzeniem. Jeśli path nie ma rozszerzenia i extension nie nulljest , zwracany ciąg ścieżki zawiera extension dołączany na końcu .path

Wyjątki

.NET Framework i .NET Core w wersjach starszych niż 2.1: path zawiera co najmniej jeden nieprawidłowy znak zdefiniowany w programie GetInvalidPathChars().

Przykłady

W poniższym przykładzie pokazano użycie ChangeExtension metody .

#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 pathextension nie zawiera kropki (.), ChangeExtension dodaje kropkę.

Parametr extension może zawierać wiele krosek i dowolnych prawidłowych znaków ścieżki i może mieć dowolną długość. Jeśli extension jest nullto , zwracany ciąg zawiera zawartość path z ostatnim kropką i wszystkie znaki po jego usunięciu.

Jeśli extension jest pustym ciągiem, zwrócony ciąg ścieżki zawiera zawartość path wszystkich znaków po usunięciu ostatniego okresu.

Jeśli path nie ma rozszerzenia i extension nie nulljest , zwracany ciąg zawiera path ciąg, po którym extensionnastępuje .

Jeśli extension nie null jest i nie zawiera okresu wiodącego, zostanie dodany okres.

Jeśli path zawiera wiele rozszerzeń oddzielonych wieloma kropkami, zwracany ciąg zawiera zawartość path ostatniego okresu i wszystkie znaki po nim zastąpione przez extension. Jeśli na przykład path jest "\Dir1\examples\pathtests.csx.txt" i extension jest "cs", zmodyfikowana ścieżka to "\Dir1\examples\pathtests.csx.cs".

Nie można sprawdzić, czy zwrócone wyniki są prawidłowe we wszystkich scenariuszach. Jeśli na przykład path jest pusty, extension jest dołączany.

Aby uzyskać listę typowych zadań we/wy, zobacz Typowe zadania we/wy.

Dotyczy

Zobacz też