Path クラス

定義

ファイルまたはディレクトリのパス情報を格納する String インスタンスで操作を実行します。Performs operations on String instances that contain file or directory path information. これらの操作は、プラットフォーム間で実行されます。These operations are performed in a cross-platform manner.

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

次の例は、Path クラスの主なメンバーの一部を示しています。The following example demonstrates some of the main members of the Path class.

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

注釈

パスは、ファイルまたはディレクトリの場所を提供する文字列です。A path is a string that provides the location of a file or directory. パスがディスク上の場所を指しているとは限りません。たとえば、パスは、メモリ内またはデバイス上の場所にマップされる場合があります。A path does not necessarily point to a location on disk; for example, a path might map to a location in memory or on a device. パスの正確な形式は、現在のプラットフォームによって決まります。The exact format of a path is determined by the current platform. たとえば、一部のシステムでは、パスはドライブまたはボリューム文字で開始できますが、この要素は他のシステムには存在しません。For example, on some systems, a path can start with a drive or volume letter, while this element is not present in other systems. 一部のシステムでは、ファイルパスに拡張子を含めることができます。拡張子は、ファイルに格納されている情報の種類を示します。On some systems, file paths can contain extensions, which indicate the type of information stored in the file. ファイル名拡張子の形式はプラットフォームに依存します。たとえば、一部のシステムでは拡張機能を3文字に制限していますが、そうでない場合もあります。The format of a file name extension is platform-dependent; for example, some systems limit extensions to three characters, and others do not. また、現在のプラットフォームでは、パスの要素を区切るために使用する文字セットと、パスを指定するときに使用できない文字のセットも決定されます。The current platform also determines the set of characters used to separate the elements of a path, and the set of characters that cannot be used when specifying paths. これらの違いにより、@no__t 0 クラスのフィールドと、Path クラスの一部のメンバーの正確な動作がプラットフォームに依存しています。Because of these differences, the fields of the Path class as well as the exact behavior of some members of the Path class are platform-dependent.

パスには、絶対または相対位置情報を含めることができます。A path can contain absolute or relative location information. 絶対パスは、場所を完全に指定します。ファイルまたはディレクトリは、現在の場所に関係なく一意に識別できます。Absolute paths fully specify a location: the file or directory can be uniquely identified regardless of the current location. 相対パスは、部分的な場所を指定します。相対パスで指定されたファイルを検索するときに、現在の場所が開始点として使用されます。Relative paths specify a partial location: the current location is used as the starting point when locating a file specified with a relative path. 現在のディレクトリを特定するには、Directory.GetCurrentDirectory を呼び出します。To determine the current directory, call Directory.GetCurrentDirectory.

.NET Core 1.1 以降のバージョンと .NET Framework 4.6.2 以降のバージョンでは、"\? \C: "" など、デバイス名であるファイルシステムオブジェクトへのアクセスもサポートされます。.NET Core 1.1 and later versions and .NET Framework 4.6.2 and later versions also support access to file system objects that are device names, such as "\?\C:".

Windows でのファイルパス形式の詳細については、「 windows システムでのファイルパス形式」を参照してください。For more information on file path formats on Windows, see File path formats on Windows systems.

@No__t-0 クラスのほとんどのメンバーは、ファイルシステムとはやり取りせず、パス文字列によって指定されたファイルが存在するかどうかを確認しません。Most members of the Path class do not interact with the file system and do not verify the existence of the file specified by a path string. パス文字列を変更する @no__t 0 のクラスメンバー (ChangeExtension など) は、ファイルシステム内のファイルの名前には影響しません。Path class members that modify a path string, such as ChangeExtension, have no effect on names of files in the file system. ただし、@no__t 0 のメンバーは、指定されたパス文字列の内容を検証し、GetInvalidPathChars メソッドから返された文字で定義されているように、文字列にパス文字列で無効な文字が含まれている場合は、ArgumentException 例外をスローします。Path members do, however, validate the contents of a specified path string, and throw an ArgumentException exception if the string contains characters that are not valid in path strings, as defined in the characters returned from the GetInvalidPathChars method. たとえば、Windows ベースのデスクトッププラットフォームでは、無効なパス文字として、引用符 (")、小なり (@no__t 0)、より大きい (>)、|パイプ ()、バックスペース (\b)、null (\ 0)、Unicode 文字 16 ~ 18、20 ~ 25 があります。For example, on Windows-based desktop platforms, invalid path characters might include quote ("), less than (<), greater than (>), pipe (|), backspace (\b), null (\0), and Unicode characters 16 through 18 and 20 through 25.

@No__t-0 クラスのメンバーを使用すると、ファイル名拡張子がパスの一部であるかどうかを判断したり、2つの文字列を1つのパス名に結合したりするなど、一般的な操作をすばやく簡単に実行できます。The members of the Path class enable you to quickly and easily perform common operations such as determining whether a file name extension is part of a path, and combining two strings into one path name.

@No__t-0 クラスのすべてのメンバーは静的であるため、パスのインスタンスを使用せずに呼び出すことができます。All members of the Path class are static and can therefore be called without having an instance of a path.

注意

パスを入力文字列として受け取るメンバーでは、そのパスは適切な形式である必要があります。そうでない場合、例外が発生します。In members that accept a path as an input string, that path must be well-formed or an exception is raised. たとえば、パスが完全修飾されていても、スペースで始まる場合は、クラスのメソッドでパスがトリムされません。For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. そのため、パスの形式が正しくないため、例外が発生します。Therefore, the path is malformed and an exception is raised. 同様に、パスまたはパスの組み合わせを2回完全に修飾することはできません。Similarly, a path or a combination of paths cannot be fully qualified twice. たとえば、"c:\temp c:\windows" は、ほとんどの場合に例外を発生させます。For example, "c:\temp c:\windows" also raises an exception in most cases. パス文字列を受け取るメソッドを使用する場合は、パスが適切な形式であることを確認します。Ensure that your paths are well-formed when using methods that accept a path string.

パスを受け入れるメンバーでは、ファイルまたはディレクトリのみを参照できます。In members that accept a path, the path can refer to a file or just a directory. 指定されたパスは、サーバーと共有名の相対パスまたは UNC (汎用名前付け規則) パスを参照することもできます。The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. たとえば、次のすべてが許容されるパスです。For example, all the following are acceptable paths:

  • "c: \ \ MyDir @ no__t-1\MyFile.txt" のC#場合は、Visual Basic の場合は "c:\MyDir\MyFile.txt"。"c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • 「」の「c: \ \ MyDir」 C#、または Visual Basic の "c:\MyDir"。"c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • Visual Basic の "MyDir @ no__t-0\MySubdir C#"、または "MyDir\MySubDir"。"MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • Visual Basic 内の "\ @ no__t @ no__t-2\MyServer @ no__t-3\MyShare" C#または "\ \ MyServer\MyShare"。"\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

これらのすべての操作は文字列に対して実行されるため、結果がすべてのシナリオで有効であることを確認することはできません。Because all these operations are performed on strings, it is impossible to verify that the results are valid in all scenarios. たとえば、GetExtension メソッドは、渡された文字列を解析し、その文字列から拡張を返します。For example, the GetExtension method parses a string that you pass to it and returns the extension from that string. ただし、その拡張子を持つファイルがディスク上に存在することを意味するわけではありません。However, this does not mean that a file with that extension exists on the disk.

共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。For a list of common I/O tasks, see Common I/O Tasks.

フィールド

AltDirectorySeparatorChar

階層ファイル システム編成を反映するパス文字列の、ディレクトリ レベルを区切るために使用する、プラットフォーム固有の代替文字を提供します。Provides a platform-specific alternate character used to separate directory levels in a path string that reflects a hierarchical file system organization.

DirectorySeparatorChar

階層ファイル システム編成を反映するパス文字列の、ディレクトリ レベルを区切るために使用する、プラットフォーム固有の文字を提供します。Provides a platform-specific character used to separate directory levels in a path string that reflects a hierarchical file system organization.

InvalidPathChars

Path クラスのメンバーに渡されるパス文字列引数で指定できないプラットフォーム固有の文字配列を提供します。Provides a platform-specific array of characters that cannot be specified in path string arguments passed to members of the Path class.

PathSeparator

環境変数のパス文字列を区切るために使用するプラットフォーム固有の区切り記号。A platform-specific separator character used to separate path strings in environment variables.

VolumeSeparatorChar

プラットフォーム固有のボリューム区切り記号を提供します。Provides a platform-specific volume separator character.

メソッド

ChangeExtension(String, String)

パス文字列の拡張子を変更します。Changes the extension of a path string.

Combine(String, String)

2 つの文字列を 1 つのパスに結合します。Combines two strings into a path.

Combine(String, String, String)

3 つの文字列を 1 つのパスに結合します。Combines three strings into a path.

Combine(String, String, String, String)

4 つの文字列を 1 つのパスに結合します。Combines four strings into a path.

Combine(String[])

文字列の配列を 1 つのパスに結合します。Combines an array of strings into a path.

EndsInDirectorySeparator(ReadOnlySpan<Char>)

読み取り専用スパンとして指定されているパスが、ディレクトリ区切り記号で終了するかどうかを示す値を返します。Returns a value that indicates whether the path, specified as a read-only span, ends in a directory separator.

EndsInDirectorySeparator(String)

指定されているパスが、ディレクトリ区切り記号で終了するかどうかを示す値を返します。Returns a value that indicates whether the specified path ends in a directory separator.

GetDirectoryName(ReadOnlySpan<Char>)

文字範囲で表された、指定されたパスのディレクトリ情報を返します。Returns the directory information for the specified path represented by a character span.

GetDirectoryName(String)

指定したパス文字列のディレクトリ情報を返します。Returns the directory information for the specified path string.

GetExtension(ReadOnlySpan<Char>)

読み取り専用の文字範囲で表されたファイル パスの拡張子を返します。Returns the extension of a file path that is represented by a read-only character span.

GetExtension(String)

指定のパス文字列の拡張子 (ピリオド "." を含む) を返します。Returns the extension (including the period ".") of the specified path string.

GetFileName(ReadOnlySpan<Char>)

読み取り専用の文字範囲で表されたファイル パスのファイル名と拡張子を返します。Returns the file name and extension of a file path that is represented by a read-only character span.

GetFileName(String)

指定したパス文字列のファイル名と拡張子を返します。Returns the file name and extension of the specified path string.

GetFileNameWithoutExtension(ReadOnlySpan<Char>)

読み取り専用の文字範囲で表されたファイル パスの拡張子のないファイル名を返します。Returns the file name without the extension of a file path that is represented by a read-only character span.

GetFileNameWithoutExtension(String)

指定したパス文字列のファイル名を拡張子を付けずに返します。Returns the file name of the specified path string without the extension.

GetFullPath(String)

指定したパス文字列の絶対パスを返します。Returns the absolute path for the specified path string.

GetFullPath(String, String)

完全修飾ベース パスと相対パスから絶対パスを返します。Returns an absolute path from a fully qualified base path and a relative path.

GetInvalidFileNameChars()

ファイル名に使用できない文字を含む配列を取得します。Gets an array containing the characters that are not allowed in file names.

GetInvalidPathChars()

パス名に使用できない文字を含む配列を取得します。Gets an array containing the characters that are not allowed in path names.

GetPathRoot(ReadOnlySpan<Char>)

指定した文字範囲に含まれるパスから、ルート ディレクトリ情報を取得します。Gets the root directory information from the path contained in the specified character span.

GetPathRoot(String)

指定したパスのルート ディレクトリ情報を取得します。Gets the root directory information of the specified path.

GetRandomFileName()

ランダムなフォルダー名またはファイル名を返します。Returns a random folder name or file name.

GetRelativePath(String, String)

あるパスから別のパスへの相対パスを返します。Returns a relative path from one path to another.

GetTempFileName()

一意な名前を持つ 0 バイトの一時ファイルをディスク上に作成し、そのファイルの完全パスを返します。Creates a uniquely named, zero-byte temporary file on disk and returns the full path of that file.

GetTempPath()

現在のユーザーの一時フォルダーのパスを返します。Returns the path of the current user's temporary folder.

HasExtension(ReadOnlySpan<Char>)

指定された文字範囲で表されたパスにファイル名拡張子が含まれているかどうかを判断します。Determines whether the path represented by the specified character span includes a file name extension.

HasExtension(String)

パスにファイル名の拡張子が含まれているか判定します。Determines whether a path includes a file name extension.

IsPathFullyQualified(ReadOnlySpan<Char>)

指定された文字範囲で表されたファイル パスが、特定のドライブまたは UNC パスに固定されているかどうかを示す値を返します。Returns a value that indicates whether the file path represented by the specified character span is fixed to a specific drive or UNC path.

IsPathFullyQualified(String)

指定されたファイル パスが特定のドライブまたは UNC パスに固定されているかどうかを示す値を返します。Returns a value that indicates whether the specified file path is fixed to a specific drive or UNC path.

IsPathRooted(ReadOnlySpan<Char>)

ファイル パスを表す指定された文字範囲にルートが含まれているかどうかを示す値を返します。Returns a value that indicates whether the specified character span that represents a file path contains a root.

IsPathRooted(String)

指定されたパス文字列にルートが含まれているかどうかを示す値を返します。Returns a value indicating whether the specified path string contains a root.

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

2 つのパス コンポーネントを単一のパスに連結します。Concatenates two path components into a single path.

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

3 つのパス コンポーネントを単一のパスに連結します。Concatenates three path components into a single path.

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

4 つのパス コンポーネントを単一のパスに連結します。Concatenates four path components into a single path.

Join(String, String)

2 つのパスを単一のパスに連結します。Concatenates two paths into a single path.

Join(String, String, String)

3 つのパスを単一のパスに連結します。Concatenates three paths into a single path.

Join(String, String, String, String)

4 つのパスを単一のパスに連結します。Concatenates four paths into a single path.

Join(String[])

パスの配列を連結して 1 つのパスにします。Concatenates an array of paths into a single path.

TrimEndingDirectorySeparator(ReadOnlySpan<Char>)

指定したパスのルート以降の末尾の区切り記号をトリミングします。Trims one trailing directory separator beyond the root of the specified path.

TrimEndingDirectorySeparator(String)

指定したパスのルート以降の末尾の区切り記号をトリミングします。Trims one trailing directory separator beyond the root of the specified path.

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

2 つのパス コンポーネントを事前に割り当てられた単一の文字範囲に連結することを試み、この操作が成功したかどうかを示す値を返します。Attempts to concatenate two path components to a single preallocated character span, and returns a value that indicates whether the operation succeeded.

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

2 つのパス コンポーネントを事前に割り当てられた単一の文字範囲に連結することを試み、この操作が成功したかどうかを示す値を返します。Attempts to concatenate two path components to a single preallocated character span, and returns a value that indicates whether the operation succeeded.

適用対象

こちらもご覧ください