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 に拡張子がなく、extensionnull でない場合は、返されるパス文字列に path の末尾に追加される extension が含まれます。

例外

.NET Framework バージョンと .NET Core バージョンが 2.1 より前の場合: pathGetInvalidPathChars()定義されている無効な文字が 1 つ以上含まれています。

次の例では、 メソッドの使用方法を 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'

注釈

また、どちらもextensionピリオド (.) を含めなかったpath場合は、ChangeExtension期間を追加します。

パラメーターには extension 、複数のピリオドと任意の有効なパス文字を含めることができます。また、任意の長さにできます。 が のnull場合extension、返される文字列には、最後のpathピリオドとその後のすべての文字が削除された の内容が含まれます。

が空の文字列の場合 extension 、返されるパス文字列には の path 内容が含まれます。最後のピリオドに続く任意の文字が削除されます。

に拡張子extensionが指定されておらず、 が でないnull場合path、返される文字列の後に pathextension含まれます。

が でなくnull、先行期間が含まれていない場合extensionは、期間が追加されます。

複数のピリオドで区切られた複数の拡張子が含まれている場合 path 、返される文字列には、最後のピリオドを含む の path 内容と、その後のすべての文字が に extension置き換えられます。 たとえば、 が "\Dir1\examples\pathtests.csx.txt" で "cs" extension の場合path、変更されたパスは "\Dir1\examples\pathtests.csx.cs" になります。

返された結果がすべてのシナリオで有効であることを確認することはできません。 たとえば、 が空の場合 path は が extension 追加されます。

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。

適用対象

こちらもご覧ください