DirectoryInfo クラス

ディレクトリとサブディレクトリを作成、削除、および列挙するためのインスタンス メソッドを公開します。

この型のすべてのメンバの一覧については、DirectoryInfo メンバ を参照してください。

System.Object
   System.MarshalByRefObject
      System.IO.FileSystemInfo
         System.IO.DirectoryInfo

<Serializable>
NotInheritable Public Class DirectoryInfo   Inherits FileSystemInfo
[C#]
[Serializable]
public sealed class DirectoryInfo : FileSystemInfo
[C++]
[Serializable]
public __gc __sealed class DirectoryInfo : public FileSystemInfo
[JScript]
public
   Serializable
class DirectoryInfo extends FileSystemInfo

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

DirectoryInfo クラスは、ディレクトリのコピー、移動、名前変更、作成、削除などの一般的な操作に使用します。

オブジェクトを何回か再利用する場合は、必ずしもセキュリティ チェックが必要ではなくなるため、 Directory の対応する静的メソッドの代わりに DirectoryInfo のインスタンス メソッドを使用することを検討してください。

メモ   入力文字列としてパスを受け入れるメンバでは、そのパスが正しい書式である必要があります。それ以外の場合は、例外が発生します。たとえば、パスが絶対パスであっても空白で始まっている場合、そのパスはクラスのメソッドではトリムされません。このため、パスが正しい書式にならず、例外が発生します。同様に、1 つのパスまたは複数のパスの組み合わせで、2 つの絶対パスを指定することはできません。たとえば、"c:\temp c:\windows" でも、ほとんどの場合において例外が発生します。パス文字列を受け入れるメソッドを使用するときは、パスが適切な書式であることを確認します。

パスを受け入れるメンバでは、ファイルまたはディレクトリを参照するパスを指定できます。指定するパスは、相対パス、またはサーバーおよび共有名を示す UNC (Universal Naming Convention) パスにすることができます。たとえば、次に示すパスはすべて有効なパスです。

  • C# では "c:\\MyDir\\MyFile.txt"、Visual Basic では "c:\MyDir\MyFile.txt"。
  • C# では "c:\\MyDir"、Visual Basic では "c:\MyDir"。
  • C# では "MyDir\\MySubdir"、Visual Basic では "MyDir\MySubDir"。
  • C# では "\\\\MyServer\\MyShare"、Visual Basic では "\\MyServer\MyShare"。

既定では、すべてのユーザーに、新しいディレクトリに対する完全な読み書きアクセス権が与えられます。

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

実行するタスク 参考例があるトピック
テキスト ファイルを作成する。 ファイルへのテキストの書き込み
テキスト ファイルに書き込む。 ファイルへのテキストの書き込み
テキスト ファイルから読み取る。 ファイルからのテキストの読み取り
ディレクトリをコピーする。 Directory
ディレクトリの名前を変更、またはディレクトリを移動する。 Directory.Move

DirectoryInfo.MoveTo

ディレクトリを削除する。 Directory.Delete

DirectoryInfo.Delete

ディレクトリを作成する。 CreateDirectory

Directory

サブディレクトリを作成する。 CreateSubdirectory
ディレクトリ内のファイルを参照する。 Name
ディレクトリ内のサブディレクトリを参照する。 GetDirectories

GetDirectories

ディレクトリ内のすべてのサブディレクトリにあるすべてのファイルを参照する。 GetFileSystemInfos
ディレクトリのサイズを取得する。 Directory
ファイルが存在するかどうかを判別する。 Exists
ディレクトリ内のファイルをサイズ順に並べ替える。 GetFileSystemInfos
ディレクトリが存在するかどうかを判別する。 Exists

.NET Compact Framework - Windows CE .NET プラットフォームに関する注意点: ディレクトリ属性の取得と設定はサポートされていません。

使用例

[Visual Basic, C#, C++] DirectoryInfo クラスの主要なメンバの例を次に示します。

 
Imports System
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
        Try
            ' Determine whether the directory exists.
            If di.Exists Then
                ' Indicate that it already exists.
                Console.WriteLine("That path exists already.")
                Return
            End If

            ' Try to create the directory.
            di.Create()
            Console.WriteLine("The directory was created successfully.")

            ' Delete the directory.
            di.Delete()
            Console.WriteLine("The directory was deleted successfully.")

        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

[C#] 
using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
        try 
        {
            // Determine whether the directory exists.
            if (di.Exists) 
            {
                // Indicate that the directory already exists.
                Console.WriteLine("That path exists already.");
                return;
            }

            // Try to create the directory.
            di.Create();
            Console.WriteLine("The directory was created successfully.");

            // Delete the directory.
            di.Delete();
            Console.WriteLine("The directory was deleted successfully.");

        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        } 
        finally {}
    }
}

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

using namespace System;
using namespace System::IO;

int main() {
    // Specify the directories you want to manipulate.
    DirectoryInfo* di = new DirectoryInfo(S"c:\\MyDir");
    try {
        // Determine whether the directory exists.
        if (di->Exists) {
            // Indicate that the directory already exists.
            Console::WriteLine(S"That path exists already.");
            return 0;
        }

        // Try to create the directory.
        di->Create();
        Console::WriteLine(S"The directory was created successfully.");

        // Delete the directory.
        di->Delete();
        Console::WriteLine(S"The directory was deleted successfully.");
    } catch (Exception* e) {
        Console::WriteLine(S"The process failed: {0}", e);
    } 
}

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

必要条件

名前空間: System.IO

プラットフォーム: 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

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

DirectoryInfo メンバ | System.IO 名前空間 | File | Attributes | Directory | Path | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み | 基本のファイル I/O | 新しく作成したデータ ファイルの読み取りと書き込み