Condividi tramite


Path.ChangeExtension(String, String) Metodo

Definizione

Cambia l'estensione di una stringa di percorso.

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

Parametri

path
String

Informazioni sul percorso da modificare.

extension
String

Nuova estensione, con o senza un punto iniziale. Specificare null per rimuovere un'estensione esistente da path.

Restituisce

Informazioni sul percorso modificato.

Nelle piattaforme desktop basate su Windows, se path è null o una stringa vuota (""), le informazioni sul percorso verranno restituite immutate. Se extension è null, la stringa restituita conterrà il percorso specificato senza estensione. Se path non ha estensione e extension non è null, la stringa di percorso restituita conterrà extension alla fine di path.

Eccezioni

.NET Framework e versioni di .NET Core precedenti alla 2.1: path contiene uno o più caratteri non validi definiti in GetInvalidPathChars().

Esempio

Nell'esempio seguente viene illustrato l'uso del ChangeExtension metodo .

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

Commenti

Se né contiene né pathextension un punto (.), ChangeExtension aggiunge il punto.

Il extension parametro può contenere più punti e qualsiasi carattere di percorso valido e può essere qualsiasi lunghezza. Se extension è null, la stringa restituita contiene il contenuto di path con l'ultimo punto e tutti i caratteri successivi alla stringa rimossa.

Se extension è una stringa vuota, la stringa di percorso restituita contiene il contenuto di path con i caratteri successivi all'ultimo periodo rimosso.

Se path non ha un'estensione e extension non nullè , la stringa restituita contiene path seguita da extension.

Se extension non null è e non contiene un punto iniziale, viene aggiunto il punto.

Se path contiene un'estensione multipla separata da più punti, la stringa restituita contiene il contenuto di path con l'ultimo periodo e tutti i caratteri successivi a esso sostituiti da extension. Ad esempio, se path è "\Dir1\examples\pathtests.csx.txt" ed extension è "cs", il percorso modificato è "\Dir1\examples\pathtests.csx.cs".

Non è possibile verificare che i risultati restituiti siano validi in tutti gli scenari. Ad esempio, se path è vuoto, extension viene aggiunto.

Per un elenco delle attività di I/O comuni, vedere Attività di I/O comuni.

Si applica a

Vedi anche