DirectoryInfoとは? わかりやすく解説

DirectoryInfo クラス

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

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class
 DirectoryInfo
    Inherits FileSystemInfo
Dim instance As DirectoryInfo
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class DirectoryInfo : FileSystemInfo
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class DirectoryInfo sealed : public
 FileSystemInfo
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class DirectoryInfo extends FileSystemInfo
SerializableAttribute 
ComVisibleAttribute(true) 
public final class DirectoryInfo extends
 FileSystemInfo
解説解説

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 タスクの例を次の表に示します。

Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows CE プラットフォームメモ : デバイスのファイル システムはぞれぞれ動作が異なるため、.NET Compact Framework ではディレクトリ属性の取得または設定をサポートしていません。

使用例使用例

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
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 {}
    }
}
using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di = gcnew 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 0;
      }
      
      // 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 );
   }

}

import System.*;
import System.IO.*;

class Test
{
    public static void main(String[]
 args)
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di = new DirectoryInfo("c:\\MyDir");

        try {
            // Determine whether the directory exists.
            if (di.get_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 (System.Exception e) {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
        finally {
        }
    } //main
} //Test

ディレクトリとその内容をコピーする方法の例を次に示します。

継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.IO.FileSystemInfo
      System.IO.DirectoryInfo
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DirectoryInfo コンストラクタ

指定したパスに対する、DirectoryInfo クラスの新しいインスタンスを初期化します。

名前空間: System.IO
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

public DirectoryInfo (
    string path
)
public:
DirectoryInfo (
    String^ path
)
public DirectoryInfo (
    String path
)
public function DirectoryInfo (
    path : String
)

パラメータ

path

DirectoryInfo を作成する対象のパスを指定する文字列。

例外例外
例外の種類条件

ArgumentNullException

path が null 参照 (Visual Basic では Nothing) です。

SecurityException

呼び出し元に、必要なアクセス許可がありません。

ArgumentException

path に、"、<、>、| などの無効な文字が含まれています。

PathTooLongException

指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windows ベースのプラットフォームの場合、パスの長さは 248 文字未満、ファイル名の長さは 260 文字未満である必要があります。指定したパス、ファイル名、またはその両方が長すぎます。

解説解説

このコンストラクタは、ディレクトリが存在するかどうかのチェックは行いません。このコンストラクタは、以降の操作でディスクへのアクセスに使用される文字列のプレースホルダです。

path パラメータにはファイル名も指定できます。このファイルには、UNC 共有のファイルも含まれます。

注意に関するメモ注意

特定のカルチャ設定で文字セットをコンパイルし、同じ文字を異なるカルチャ設定で取得すると、文字が正しく解釈されない場合があり、例外がスローされることもあります。

その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

使用例使用例

指定したディレクトリとサブディレクトリをこのコンストラクタを使用して作成し、さらにサブディレクトリを含むディレクトリが削除できないようすを表す例を次に示します。

Imports System
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim di1 As DirectoryInfo = New
 DirectoryInfo("c:\MyDir")
        Dim di2 As DirectoryInfo = New
 DirectoryInfo("c:\MyDir\temp")
        Try
            ' Create the directories.
            di1.Create()
            di2.Create()
            ' This operation will not be allowed because there are subdirectories.
            Console.WriteLine("I am about to attempt to delete
 {0}.", di1.Name)
            di1.Delete()
            Console.WriteLine("The Delete operation was successful,
 which was unexpected.")
        Catch e As Exception
            Console.WriteLine("The Delete operation failed as
 expected.")
        End Try
    End Sub
End Class
using System;
using System.IO;

class Test 
{
    public static void Main()
 
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di1 = new DirectoryInfo(@"c:\MyDir");
        DirectoryInfo di2 = new DirectoryInfo(@"c:\MyDir\temp");

        try 
        {
            // Create the directories.
            di1.Create();
            di2.Create();

            // This operation will not be allowed because there are
 subdirectories.
            Console.WriteLine("I am about to attempt to delete {0}.", di1.Name);
            di1.Delete();
            Console.WriteLine("The Delete operation was successful, which was
 unexpected.");
        } 
        catch (Exception) 
        {
            Console.WriteLine("The Delete operation failed as expected.");
        } 
        finally {}
    }
}
using namespace System;
using namespace System::IO;
int main()
{
   
   // Specify the directories you want to manipulate.
   DirectoryInfo^ di1 = gcnew DirectoryInfo( "c:\\MyDir" );
   DirectoryInfo^ di2 = gcnew DirectoryInfo( "c:\\MyDir\\temp" );
   try
   {
      
      // Create the directories.
      di1->Create();
      di2->Create();
      
      // This operation will not be allowed because there are subdirectories.
      Console::WriteLine( "I am about to attempt to delete {0}.", di1->Name
 );
      di1->Delete();
      Console::WriteLine( "The Delete operation was successful, which was unexpected."
 );
   }
   catch ( Exception^ ) 
   {
      Console::WriteLine( "The Delete operation failed as expected." );
   }

}

import System.*;
import System.IO.*;

class Test
{
    public static void main(String[]
 args)
    {
        // Specify the directories you want to manipulate.
        DirectoryInfo di1 = new DirectoryInfo("c:\\MyDir");
        DirectoryInfo di2 = new DirectoryInfo("c:\\MyDir\\temp");

        try {
            // Create the directories.
            di1.Create();
            di2.Create();

            // This operation will not be allowed because there
            // are subdirectories.
            Console.WriteLine("I am about to attempt to delete {0}.",
                di1.get_Name());
            di1.Delete();
            Console.WriteLine("The Delete operation was successful, "
                + "which was unexpected.");
        }
        catch (System.Exception exp) {
            Console.WriteLine("The Delete operation failed as expected.");
        }
        finally {
        }
    } //main
} //Test
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DirectoryInfo プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ Attributes  現在の FileSystemInfo の FileAttributes を取得または設定します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ CreationTime  現在の FileSystemInfo オブジェクトの作成日時を取得または設定します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ CreationTimeUtc  現在の FileSystemInfo オブジェクトの作成日時を世界協定時刻 (UTC) で取得または設定します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ Exists オーバーライドされます。 ディレクトリが存在するかどうかを示す値を取得します。
パブリック プロパティ Extension  ファイルの拡張子部分を表す文字列を取得します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ FullName  ディレクトリまたはファイルの絶対パスを取得します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ LastAccessTime  現在のファイルまたはディレクトリに最後にアクセスした時刻を取得または設定します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ LastAccessTimeUtc  現在のファイルまたはディレクトリに最後にアクセスした時刻を世界協定時刻 (UTC) で取得または設定します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ LastWriteTime  現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を取得または設定します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ LastWriteTimeUtc  現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を世界協定時刻 (UTC) で取得または設定します。 ( FileSystemInfo から継承されます。)
パブリック プロパティ Name オーバーライドされます。 DirectoryInfo の現在のインスタンスの名前を取得します。
パブリック プロパティ Root パスのルート部分を取得します。
参照参照

DirectoryInfo メソッド


パブリック メソッドパブリック メソッド

  名前 説明
パブリック メソッド Create オーバーロードされます。 ディレクトリを作成します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド CreateSubdirectory オーバーロードされます。 指定したパスに 1 つ以上のサブディレクトリを作成します。パスは、この DirectoryInfo クラスのインスタンスに対する相対パスで指定できます。
パブリック メソッド Delete オーバーロードされます。 オーバーライドされます。 パスから DirectoryInfo とその内容を削除します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetAccessControl オーバーロードされます。 現在のディレクトリのアクセス制御リスト (ACL) エントリを取得します。
パブリック メソッド GetDirectories オーバーロードされます。 現在のディレクトリのサブディレクトリを返します。
パブリック メソッド GetFiles オーバーロードされます。 現在のディレクトリからファイル一覧を返します。
パブリック メソッド GetFileSystemInfos オーバーロードされます。 現在のディレクトリのファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetObjectData  ファイル名と追加の例外情報を使用して SerializationInfo オブジェクトを設定します。 ( FileSystemInfo から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド MoveTo DirectoryInfo のインスタンスとその内容を新しいパスに移動します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Refresh  オブジェクトの状態を更新します。 ( FileSystemInfo から継承されます。)
パブリック メソッド SetAccessControl DirectorySecurity オブジェクトが示すアクセス制御リスト (ACL) エントリを、現在の DirectoryInfo オブジェクトが示すディレクトリに適用します。
パブリック メソッド ToString オーバーライドされます。 ユーザーから渡された元のパスを返します。
参照参照

DirectoryInfo メンバ

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

DirectoryInfo データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド DirectoryInfo 指定したパスに対する、DirectoryInfo クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ Attributes  現在の FileSystemInfo の FileAttributes を取得または設定します。(FileSystemInfo から継承されます。)
パブリック プロパティ CreationTime  現在の FileSystemInfo オブジェクトの作成日時を取得または設定します。(FileSystemInfo から継承されます。)
パブリック プロパティ CreationTimeUtc  現在の FileSystemInfo オブジェクトの作成日時を世界協定時刻 (UTC) で取得または設定します。(FileSystemInfo から継承されます。)
パブリック プロパティ Exists オーバーライドされます。 ディレクトリが存在するかどうかを示す値を取得します。
パブリック プロパティ Extension  ファイルの拡張子部分を表す文字列を取得します。(FileSystemInfo から継承されます。)
パブリック プロパティ FullName  ディレクトリまたはファイルの絶対パスを取得します。(FileSystemInfo から継承されます。)
パブリック プロパティ LastAccessTime  現在のファイルまたはディレクトリに最後にアクセスした時刻を取得または設定します。(FileSystemInfo から継承されます。)
パブリック プロパティ LastAccessTimeUtc  現在のファイルまたはディレクトリに最後にアクセスした時刻を世界協定時刻 (UTC) で取得または設定します。(FileSystemInfo から継承されます。)
パブリック プロパティ LastWriteTime  現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を取得または設定します。(FileSystemInfo から継承されます。)
パブリック プロパティ LastWriteTimeUtc  現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を世界協定時刻 (UTC) で取得または設定します。(FileSystemInfo から継承されます。)
パブリック プロパティ Name オーバーライドされます。 DirectoryInfo の現在のインスタンスの名前を取得します。
パブリック プロパティ Root パスのルート部分を取得します。
パブリック メソッドパブリック メソッド
  名前 説明
パブリック メソッド Create オーバーロードされます。 ディレクトリを作成します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド CreateSubdirectory オーバーロードされます。 指定したパスに 1 つ以上のサブディレクトリを作成します。パスは、この DirectoryInfo クラスのインスタンスに対する相対パスで指定できます。
パブリック メソッド Delete オーバーロードされます。 オーバーライドされます。 パスから DirectoryInfo とその内容を削除します。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetAccessControl オーバーロードされます。 現在のディレクトリのアクセス制御リスト (ACL) エントリを取得します。
パブリック メソッド GetDirectories オーバーロードされます。 現在のディレクトリのサブディレクトリを返します。
パブリック メソッド GetFiles オーバーロードされます。 現在のディレクトリからファイル一覧を返します。
パブリック メソッド GetFileSystemInfos オーバーロードされます。 現在のディレクトリのファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetObjectData  ファイル名と追加の例外情報を使用して SerializationInfo オブジェクトを設定します。 (FileSystemInfo から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド MoveTo DirectoryInfo のインスタンスとその内容を新しいパスに移動します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Refresh  オブジェクトの状態を更新します。 (FileSystemInfo から継承されます。)
パブリック メソッド SetAccessControl DirectorySecurity オブジェクトが示すアクセス制御リスト (ACL) エントリを、現在の DirectoryInfo オブジェクトが示すディレクトリに適用します。
パブリック メソッド ToString オーバーライドされます。 ユーザーから渡された元のパスを返します。
参照参照



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「DirectoryInfo」の関連用語

DirectoryInfoのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DirectoryInfoのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS