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 架構桌面平台上,如果 pathnull 或空字串 (""),則會傳回未修改的路徑資訊。 如果 extensionnull,則傳回的字串會包含已移除其副檔名的指定路徑。 如果 path 沒有副檔名,並且 extension 不是 null,則傳回的路徑字串會包含附加至 path 結尾的 extension

例外狀況

.NET Framework 和 2.1 之前的 .NET Core 版本: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'

備註

pathextension如果未包含句點 (.) ,請ChangeExtension新增句點。

參數 extension 可以包含多個句點和任何有效的路徑字元,而且可以是任何長度。 如果 extensionnull,則傳回的字串包含最後一個句點的內容 path ,以及移除之後的所有字元。

如果 extension 是空字串,則傳回的路徑字串會包含的內容 path ,並在最後一個句號之後移除任何字元。

如果 path 沒有延伸名且 extension 不是 null,則傳回的字串會 path 包含 後面接著 extension

如果 extension 不是 null 且不包含前置句點,則會新增句點。

如果 path 包含多個句點分隔的多個延伸模組,則傳回的字串會包含 具有最後一個句點的內容 path ,以及取代后 extension的所有字元。 例如,如果 path 是 「\Dir1\examples\pathtests.csx.txt」,而且 extension 是 「cs」,則修改的路徑為 「\Dir1\examples\pathtests.csx.cs」。。

在所有案例中,都無法確認傳回的結果是否有效。 例如,如果 path 是空的, extension 則會附加 。

如需一般 I/O 工作的清單,請參閱 一般 I/O 工作

適用於

另請參閱