Path クラス

定義

ファイルまたはディレクトリのパス情報を格納する String インスタンスで操作を実行します。 これらの操作は、プラットフォーム間で実行されます。

public ref class Path abstract sealed
public ref class Path sealed
public static class Path
public sealed class Path
[System.Runtime.InteropServices.ComVisible(true)]
public static class Path
type Path = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Path = class
Public Class Path
Public NotInheritable Class Path
継承
Path
属性

次の例は、 クラスの主要なメンバーの一部を示 Path しています。

using namespace System;
using namespace System::IO;
int main()
{
   String^ path1 = "c:\\temp\\MyTest.txt";
   String^ path2 = "c:\\temp\\MyTest";
   String^ path3 = "temp";
   if ( Path::HasExtension( path1 ) )
   {
      Console::WriteLine( "{0} has an extension.", path1 );
   }

   if (  !Path::HasExtension( path2 ) )
   {
      Console::WriteLine( "{0} has no extension.", path2 );
   }

   if (  !Path::IsPathRooted( path3 ) )
   {
      Console::WriteLine( "The string {0} contains no root information.", path3 );
   }

   Console::WriteLine( "The full path of {0} is {1}.", path3, Path::GetFullPath( path3 ) );
   Console::WriteLine( "{0} is the location for temporary files.", Path::GetTempPath() );
   Console::WriteLine( "{0} is a file available for use.", Path::GetTempFileName() );
   Console::WriteLine( "\r\nThe set of invalid characters in a path is:" );
   Console::WriteLine( "(Note that the wildcard characters '*' and '?' are not invalid.):" );
   Collections::IEnumerator^ myEnum = Path::InvalidPathChars->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Char c =  *safe_cast<Char^>(myEnum->Current);
      Console::WriteLine( c );
   }
}
using System;
using System.IO;

class Test
{
    
    public static void Main()
    {
        string path1 = @"c:\temp\MyTest.txt";
        string path2 = @"c:\temp\MyTest";
        string path3 = @"temp";

        if (Path.HasExtension(path1))
        {
            Console.WriteLine("{0} has an extension.", path1);
        }

        if (!Path.HasExtension(path2))
        {
            Console.WriteLine("{0} has no extension.", path2);
        }

        if (!Path.IsPathRooted(path3))
        {
            Console.WriteLine("The string {0} contains no root information.", path3);
        }

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3));
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath());
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName());

        /* This code produces output similar to the following:
         * c:\temp\MyTest.txt has an extension.
         * c:\temp\MyTest has no extension.
         * The string temp contains no root information.
         * The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
         * D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.
         */
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path1 As String = "c:\temp\MyTest.txt"
        Dim path2 As String = "c:\temp\MyTest"
        Dim path3 As String = "temp"

        If Path.HasExtension(path1) Then
            Console.WriteLine("{0} has an extension.", path1)
        End If

        If Path.HasExtension(path2) = False Then
            Console.WriteLine("{0} has no extension.", path2)
        End If

        If Path.IsPathRooted(path3) = False Then
            Console.WriteLine("The string {0} contains no root information.", path3)
        End If

        Console.WriteLine("The full path of {0} is {1}.", path3, Path.GetFullPath(path3))
        Console.WriteLine("{0} is the location for temporary files.", Path.GetTempPath())
        Console.WriteLine("{0} is a file available for use.", Path.GetTempFileName())

        ' This code produces output similar to the following:
        ' c:\temp\MyTest.txt has an extension.
        ' c:\temp\MyTest has no extension.
        ' The string temp contains no root information.
        ' The full path of temp is D:\Documents and Settings\cliffc\My Documents\Visual Studio 2005\Projects\ConsoleApplication2\ConsoleApplication2\bin\Debug\temp.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\ is the location for temporary files.
        ' D:\Documents and Settings\cliffc\Local Settings\Temp\8\tmp3D.tmp is a file available for use.

    End Sub
End Class

注釈

パスは、ファイルまたはディレクトリの場所を提供する文字列です。 パスは、必ずしもディスク上の場所を指しているとは限りません。たとえば、パスがメモリ内またはデバイス上の場所にマップされる場合があります。 パスの正確な形式は、現在のプラットフォームによって決まります。 たとえば、一部のシステムでは、パスはドライブまたはボリューム文字で始め、この要素は他のシステムには存在しない場合があります。 一部のシステムでは、ファイル パスに拡張子を含め、ファイルに格納されている情報の種類を示します。 ファイル名の拡張子の形式はプラットフォームによって異なります。たとえば、一部のシステムでは拡張が 3 文字に制限されます (たとえば、より小さなフラッシュ ストレージで一般的に使用される FAT16 や、光学メディアで使用される以前のバージョンの ISO 9660 など)、他のシステムでは使用されません。 現在のプラットフォームでは、パスの要素を分離するために使用される文字のセットと、パスを指定するときに使用できない文字のセットも決定します。 これらの違いにより、 クラスのフィールドと、 クラスの一部のメンバーの正確な動作 Path Path はプラットフォームに依存します。

パスには、絶対位置情報または相対位置情報を含めできます。 絶対パスは場所を完全に指定します。ファイルまたはディレクトリは、現在の場所に関係なく一意に識別できます。 相対パスは部分的な場所を指定します。相対パスで指定されたファイルを検索するときに、現在の場所が開始点として使用されます。 現在のディレクトリを確認するには、 を呼び出します Directory.GetCurrentDirectory

.NET Core 1.1 以降のバージョンおよび .NET Framework 4.6.2 以降のバージョンでは、 などのデバイス名であるファイル システム オブジェクトへのアクセスもサポートされています。 \ \ \C: \ ".

ファイル パスの形式の詳細については、「Windows システムでのファイル パスの形式」をWindowsしてください

クラスのほとんどのメンバーは、ファイル システムと対話し、パス文字列で指定されたファイルの Path 存在を確認します。 Path などのパス文字列を変更するクラス メンバーは、ファイル システム内のファイル ChangeExtension の名前には影響しません。

一部のメンバーは、指定されたパス文字列の内容を検証し、メソッドから返される文字で定義されているパス文字列で無効な文字が文字列に含まれている場合は を Path スローします ArgumentException GetInvalidPathChars 。 たとえば、Windows ベースのデスクトップ プラットフォームでは、無効なパス文字に引用符 (")、より小さい 、パイプ (|)、バックスペース <), greater than (> ( \ b)、null ( \ 0)、Unicode 文字 16 から 18、20 から 25 が含まれる場合があります。 この検証動作は、.NET のバージョンによって異なります。

  • バージョン .NET Framework 2.1 より前の .NET Core バージョンの場合: パスを引数として受け取るすべてのメンバーは、無効なパス文字を検出すると を Path ArgumentException スローします。

  • .NET Core 2.1 以降のバージョンでは、 は、文字列に無効なパス文字が含まれている場合に をスローする GetFullPath ArgumentException 唯一のメンバーです。

クラスのメンバーを使用すると、ファイル名の拡張子がパスの一部であるかどうかを判断し、2 つの文字列を 1 つのパス名に結合するなどの一般的な操作をすばやく簡単 Path に実行できます。

クラスのすべてのメンバーは静的であるため、パスのインスタンスを持たなくても Path 呼び出されます。

注意

入力文字列としてパスを受け入れるメンバーでは、そのパスが整形式である必要があります。そうするか、例外が発生します。 たとえば、パスが完全修飾で、スペースで始まる場合、パスは クラスのメソッドでトリミングされません。 そのため、パスの形式が正しいので、例外が発生します。 同様に、パスまたはパスの組み合わせを 2 回完全修飾することはできません。 たとえば、"c: \ temp c: windows" は、ほとんどの \ 場合例外も発生します。 パス文字列を受け入れるメソッドを使用する場合は、パスが整形式で表示されます。

パスを受け入れるメンバーでは、パスはファイルを参照するか、単にディレクトリを参照できます。 指定したパスは、サーバーと共有名の相対パスまたは UNC (Universal Naming Convention) パスを参照することもできます。 たとえば、次のすべてが許容されるパスです。

  • C# の \ \ "c: MyDir \ \MyFile.txt"、または C: \ myDir \MyFile.txt" がVisual Basic。

  • C# の "c: \ \ MyDir"、または C# の "c: \ MyDir" Visual Basic。

  • C# の \ \ "MyDir MySubdir"、または C# の "MyDir \ MySubDir" Visual Basic。

  • C# \ \ \ \ \ \ の "MyServer MyShare" または Visual Basic \ \ の "MyServer \ MyShare"。

これらの操作はすべて文字列に対して実行されるので、すべてのシナリオで結果が有効な結果を確認することは不可能です。 たとえば、 メソッドは、渡した文字列を解析し、その文字列から GetExtension 拡張子を返します。 ただし、これは、その拡張子を持つファイルがディスク上に存在することを意味するわけではありません。

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

フィールド

AltDirectorySeparatorChar

階層ファイル システム編成を反映するパス文字列の、ディレクトリ レベルを区切るために使用する、プラットフォーム固有の代替文字を提供します。

DirectorySeparatorChar

階層ファイル システム編成を反映するパス文字列の、ディレクトリ レベルを区切るために使用する、プラットフォーム固有の文字を提供します。

InvalidPathChars
互換性のために残されています。
互換性のために残されています。
互換性のために残されています。

Path クラスのメンバーに渡されるパス文字列引数で指定できないプラットフォーム固有の文字配列を提供します。

PathSeparator

環境変数のパス文字列を区切るために使用するプラットフォーム固有の区切り記号。

VolumeSeparatorChar

プラットフォーム固有のボリューム区切り記号を提供します。

メソッド

ChangeExtension(String, String)

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

Combine(String, String)

2 つの文字列を 1 つのパスに結合します。

Combine(String, String, String)

3 つの文字列を 1 つのパスに結合します。

Combine(String, String, String, String)

4 つの文字列を 1 つのパスに結合します。

Combine(String[])

文字列の配列を 1 つのパスに結合します。

EndsInDirectorySeparator(ReadOnlySpan<Char>)

読み取り専用スパンとして指定されているパスが、ディレクトリ区切り記号で終了するかどうかを示す値を返します。

EndsInDirectorySeparator(String)

指定されているパスが、ディレクトリ区切り記号で終了するかどうかを示す値を返します。

GetDirectoryName(ReadOnlySpan<Char>)

文字範囲で表された、指定されたパスのディレクトリ情報を返します。

GetDirectoryName(String)

指定したパスのディレクトリ情報を返します。

GetExtension(ReadOnlySpan<Char>)

読み取り専用の文字範囲で表されたファイル パスの拡張子を返します。

GetExtension(String)

指定のパス文字列の拡張子 (ピリオド "." を含む) を返します。

GetFileName(ReadOnlySpan<Char>)

読み取り専用の文字範囲で表されたファイル パスのファイル名と拡張子を返します。

GetFileName(String)

指定したパス文字列のファイル名と拡張子を返します。

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

読み取り専用の文字範囲で表されたファイル パスの拡張子のないファイル名を返します。

GetFileNameWithoutExtension(String)

指定したパス文字列のファイル名を拡張子を付けずに返します。

GetFullPath(String)

指定したパス文字列の絶対パスを返します。

GetFullPath(String, String)

相対パスと完全修飾ベース パスから絶対パスを返します。

GetInvalidFileNameChars()

ファイル名に使用できない文字を含む配列を取得します。

GetInvalidPathChars()

パス名に使用できない文字を含む配列を取得します。

GetPathRoot(ReadOnlySpan<Char>)

指定した文字範囲に含まれるパスから、ルート ディレクトリ情報を取得します。

GetPathRoot(String)

指定した文字列に含まれるパスから、ルート ディレクトリ情報を取得します。

GetRandomFileName()

ランダムなフォルダー名またはファイル名を返します。

GetRelativePath(String, String)

あるパスから別のパスへの相対パスを返します。

GetTempFileName()

一意な名前を持つ 0 バイトの一時ファイルをディスク上に作成し、そのファイルの完全パスを返します。

GetTempPath()

現在のユーザーの一時フォルダーのパスを返します。

HasExtension(ReadOnlySpan<Char>)

指定された文字範囲で表されたパスにファイル名拡張子が含まれているかどうかを判断します。

HasExtension(String)

パスにファイル名の拡張子が含まれているか判定します。

IsPathFullyQualified(ReadOnlySpan<Char>)

指定された文字範囲で表されたファイル パスが、特定のドライブまたは UNC パスに固定されているかどうかを示す値を返します。

IsPathFullyQualified(String)

指定されたファイル パスが特定のドライブまたは UNC パスに固定されているかどうかを示す値を返します。

IsPathRooted(ReadOnlySpan<Char>)

ファイル パスを表す指定された文字範囲にルートが含まれているかどうかを示す値を返します。

IsPathRooted(String)

指定されたパス文字列にルートが含まれているかどうかを示す値を返します。

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

2 つのパス コンポーネントを単一のパスに連結します。

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

3 つのパス コンポーネントを単一のパスに連結します。

Join(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>)

4 つのパス コンポーネントを単一のパスに連結します。

Join(String, String)

2 つのパスを単一のパスに連結します。

Join(String, String, String)

3 つのパスを単一のパスに連結します。

Join(String, String, String, String)

4 つのパスを単一のパスに連結します。

Join(String[])

パスの配列を連結して 1 つのパスにします。

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

指定したパスのルート以降の末尾の区切り記号をトリミングします。

TrimEndingDirectorySeparator(String)

指定したパスのルート以降の末尾の区切り記号をトリミングします。

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

2 つのパス コンポーネントを事前に割り当てられた単一の文字範囲に連結することを試み、この操作が成功したかどうかを示す値を返します。

TryJoin(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Span<Char>, Int32)

2 つのパス コンポーネントを事前に割り当てられた単一の文字範囲に連結することを試み、この操作が成功したかどうかを示す値を返します。

適用対象

こちらもご覧ください