次の方法で共有


Path.ChangeExtension メソッド

パス文字列の拡張子を変更します。

Public Shared Function ChangeExtension( _
   ByVal path As String, _   ByVal extension As String _) As String
[C#]
public static string ChangeExtension(stringpath,stringextension);
[C++]
public: static String* ChangeExtension(String* path,String* extension);
[JScript]
public static function ChangeExtension(
   path : String,extension : String) : String;

パラメータ

  • path
    変更するパス情報。パスに、 InvalidPathChars で定義された文字を含めることはできません。
  • extension
    新しい拡張子 (先行ピリオド付き)。 null 参照 (Visual Basic では Nothing) を指定して、 path から既存の拡張子を削除します。

戻り値

変更されたパス情報を含む文字列。

Windows ベースのデスクトップ プラットフォームでは、 path が null 参照 (Visual Basic では Nothing) または空の文字列 ("") の場合、パス情報は変更されずに返されます。 extension が null 参照 (Nothing) の場合は、返される文字列に、削除した拡張子が付いた指定したパスが含まれます。 path に拡張子がなく、 extension が null 参照 (Nothing) でない場合は、返されるパス文字列に path の末尾に追加される extension が含まれます。

例外

例外の種類 条件
ArgumentException パスに、 InvalidPathChars で定義されている無効な文字が 1 つ以上含まれています。

解説

path にも extension にもピリオド (.) が含まれていない場合、 ChangeExtension はピリオドを追加します。

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

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

path が拡張子を持たず、 extension が null 参照 (Nothing) でない場合は、返される文字列には、後ろに extension が付いた path が含まれます。

extension が null 参照 (Nothing) でなく、先行ピリオドが含まれていない場合は、ピリオドが追加されます。

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

返された結果がすべてのシナリオで有効かどうかを検査できません。たとえば、 path が空の場合は、 extension が追加されます。

このメソッドの使用例については、以下の「使用例」を参照してください。その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

実行するタスク 参考例があるトピック
テキスト ファイルを作成する。 ファイルへのテキストの書き込み
テキスト ファイルに書き込む。 ファイルへのテキストの書き込み
テキスト ファイルから読み取る。 ファイルからのテキストの読み取り
ファイルの拡張子を取得する。 GetExtension
ファイルの絶対パスを取得する。 GetFullPath
パスからファイル名だけを取得する。 GetFileNameWithoutExtension
パスからディレクトリ名だけを取得する。 GetDirectoryName

使用例

[Visual Basic, C#, C++] ChangeExtension メソッドを使用する例を次に示します。

 
Imports System
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)

[C#] 
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); 

[C++] 
#using <mscorlib.dll>
#using <system.dll>

using namespace System;
using namespace System::IO;

void ChangeExtension()
{
   String * goodFileName = S"C:\\mydir\\myfile.com.extension";
   String * badFileName = S"C:\\mydir\\";
   String * result;

   result = Path::ChangeExtension(goodFileName, ".old");
   Console::WriteLine(S"ChangeExtension({0}, '.old') returns '{1}'",
      goodFileName, result); 

   result = Path::ChangeExtension(goodFileName, "");
   Console::WriteLine(S"ChangeExtension({0}, '') returns '{1}'", 
      goodFileName, result); 

   result = Path::ChangeExtension(badFileName, ".old");
   Console::WriteLine(S"ChangeExtension({0}, '.old') returns '{1}'", 
      badFileName, result); 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

Path クラス | Path メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み