Language

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()で定義されている無効な文字が 1 つ以上含まれています。

例

次の例では、 ChangeExtension メソッドの使用方法を示します。

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されていない場合、返される文字列には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 タスク」を参照してください。

適用対象

こちらもご覧ください