DirectoryInfo クラス

定義

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

public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
type DirectoryInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DirectoryInfo = class
    inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
継承
DirectoryInfo
継承
属性

クラスの主なメンバーの一部を次の例に示し DirectoryInfo ます。

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 );
   }

}
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 {}
    }
}
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 CopyDir
{
    public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
    {
        if (source.FullName.ToLower() == target.FullName.ToLower())
        {
            return;
        }

        // Check if the target directory exists, if not, create it.
        if (Directory.Exists(target.FullName) == false)
        {
            Directory.CreateDirectory(target.FullName);
        }

        // Copy each file into it's new directory.
        foreach (FileInfo fi in source.GetFiles())
        {
            Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
        }

        // Copy each subdirectory using recursion.
        foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
        {
            DirectoryInfo nextTargetSubDir =
                target.CreateSubdirectory(diSourceSubDir.Name);
            CopyAll(diSourceSubDir, nextTargetSubDir);
        }
    }

    public static void Main()
    {
        string sourceDirectory = @"c:\sourceDirectory";
        string targetDirectory = @"c:\targetDirectory";

        DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
        DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);

        CopyAll(diSource, diTarget);
    }

    // Output will vary based on the contents of the source directory.
}
Imports System.IO

Class CopyDir
    Shared Sub CopyAll(ByVal source As DirectoryInfo, ByVal target As DirectoryInfo)
        If (source.FullName.ToLower() = target.FullName.ToLower()) Then
            Return
        End If

        ' Check if the target directory exists, if not, create it.
        If Directory.Exists(target.FullName) = False Then
            Directory.CreateDirectory(target.FullName)
        End If

        ' Copy each file into it's new directory.
        For Each fi As FileInfo In source.GetFiles()
            Console.WriteLine("Copying {0}\{1}", target.FullName, fi.Name)
            fi.CopyTo(Path.Combine(target.ToString(), fi.Name), True)
        Next

        ' Copy each subdirectory using recursion.
        For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
            Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
            CopyAll(diSourceSubDir, nextTargetSubDir)
        Next
    End Sub

    Shared Sub Main()
        Dim sourceDirectory As String = "c:\\sourceDirectory"
        Dim targetDirectory As String = "c:\\targetDirectory"

        Dim diSource As DirectoryInfo = New DirectoryInfo(sourceDirectory)
        Dim diTarget As DirectoryInfo = New DirectoryInfo(targetDirectory)

        CopyAll(diSource, diTarget)
    End Sub
    ' Output will vary based on the contents of the source directory.
End Class

注釈

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

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

注意

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

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

  • 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 タスク を参照してください。

コンストラクター

DirectoryInfo(String)

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

フィールド

FullPath

ディレクトリまたはファイルの絶対パスを表します。

(継承元 FileSystemInfo)
OriginalPath

パスは、以前にユーザーが相対パスまたは絶対パスで指定したものです。

(継承元 FileSystemInfo)

プロパティ

Attributes

現在のファイルまたはディレクトリの属性を取得または設定します。

(継承元 FileSystemInfo)
CreationTime

現在のファイルまたはディレクトリの作成日時を取得または設定します。

(継承元 FileSystemInfo)
CreationTimeUtc

現在のファイルまたはディレクトリの作成日時を世界協定時刻 (UTC) で取得または設定します。

(継承元 FileSystemInfo)
Exists

ディレクトリが存在するかどうかを示す値を取得します。

Extension

先頭のドット を含む、ファイル名の拡張子部分を取得します ファイル名全体である場合でも、拡張子が存在しない場合は空の文字列です。

(継承元 FileSystemInfo)
FullName

ディレクトリの絶対パスを取得します。

FullName

ディレクトリまたはファイルの絶対パスを取得します。

(継承元 FileSystemInfo)
LastAccessTime

現在のファイルまたはディレクトリに最後にアクセスした時刻を取得または設定します。

(継承元 FileSystemInfo)
LastAccessTimeUtc

現在のファイルまたはディレクトリに最後にアクセスした時刻を世界協定時刻 (UTC) で取得または設定します。

(継承元 FileSystemInfo)
LastWriteTime

現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を取得または設定します。

(継承元 FileSystemInfo)
LastWriteTimeUtc

現在のファイルまたはディレクトリに最後に書き込みが行われた時刻を世界協定時刻 (UTC) で取得または設定します。

(継承元 FileSystemInfo)
LinkTarget

この FileSystemInfo インスタンスがリンクを表している場合は、リンク先のパスを返します。 リンクがに存在しない場合、 FullName またはこのインスタンスがリンクを表していない場合、はを返し null ます。

(継承元 FileSystemInfo)
Name

DirectoryInfo の現在のインスタンスの名前を取得します。

Parent

指定されたサブディレクトリの親ディレクトリを取得します。

Root

ディレクトリのルート部分を取得します。

メソッド

Create()

ディレクトリを作成します。

Create(DirectorySecurity)

DirectorySecurity オブジェクトを使用してディレクトリを作成します。

CreateAsSymbolicLink(String)

指定した を指す に位置 FullName するシンボリック リンクを作成します pathToTarget

(継承元 FileSystemInfo)
CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
CreateSubdirectory(String)

指定したパスに 1 つ以上のサブディレクトリを作成します。 パスは、この DirectoryInfo クラスのインスタンスに対する相対パスで指定できます。

CreateSubdirectory(String, DirectorySecurity)

適用するセキュリティを指定して、指定したパスに 1 つ以上のサブディレクトリを作成します。 パスは、この DirectoryInfo クラスのインスタンスに対する相対パスで指定できます。

Delete()

DirectoryInfo が空の場合に、そのインスタンスを削除します。

Delete(Boolean)

中に含まれているサブディレクトリとファイルを削除するかどうかを指定して、DirectoryInfo のインスタンスを削除します。

EnumerateDirectories()

現在のディレクトリの列挙可能なディレクトリ情報のコレクションを返します。

EnumerateDirectories(String)

指定された検索パターンに一致する列挙可能なディレクトリ情報のコレクションを返します。

EnumerateDirectories(String, EnumerationOptions)

指定した検索パターンおよび列挙オプションに一致する列挙可能なディレクトリ情報のコレクションを返します。

EnumerateDirectories(String, SearchOption)

指定された検索パターンと、サブディレクトリを検索するかどうかを指定するオプションの設定に一致する列挙可能なディレクトリ情報のコレクションを返します。

EnumerateFiles()

現在のディレクトリに存在するファイル情報の列挙可能なコレクションを返します。

EnumerateFiles(String)

検索パターンに一致する列挙可能なファイル情報のコレクションを返します。

EnumerateFiles(String, EnumerationOptions)

指定された検索パターンと列挙オプションに一致するファイル情報の列挙可能なコレクションを返します。

EnumerateFiles(String, SearchOption)

指定された検索パターンと、サブディレクトリを検索するかどうかを指定するオプションの設定に一致する列挙可能なファイル情報のコレクションを返します。

EnumerateFileSystemInfos()

現在のディレクトリ内の列挙可能なファイル システム情報のコレクションを返します。

EnumerateFileSystemInfos(String)

指定された検索パターンに一致する列挙可能なファイル システム情報のコレクションを返します。

EnumerateFileSystemInfos(String, EnumerationOptions)

指定した検索パターンと列挙オプションに一致する列挙可能なファイル システム情報のコレクションを返します。

EnumerateFileSystemInfos(String, SearchOption)

指定された検索パターンと、サブディレクトリを検索するかどうかを指定するオプションの設定に一致する列挙可能なファイル システム情報のコレクションを返します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetAccessControl()

現在の DirectorySecurity オブジェクトが示すディレクトリのアクセス制御リスト (ACL) エントリをカプセル化する DirectoryInfo オブジェクトを取得します。

GetAccessControl(AccessControlSections)

現在の DirectorySecurity オブジェクトで示されるディレクトリの、指定した種類のアクセス制御リスト (ACL) エントリをカプセル化する DirectoryInfo オブジェクトを取得します。

GetDirectories()

現在のディレクトリのサブディレクトリを返します。

GetDirectories(String)

現在の DirectoryInfo 内にあり、指定した検索基準に一致するディレクトリの配列を返します。

GetDirectories(String, EnumerationOptions)

指定した検索パターンと列挙オプションに一致する、現在の DirectoryInfo 内のディレクトリの配列を返します。

GetDirectories(String, SearchOption)

現在の DirectoryInfo 内にある、指定した検索条件に一致し、サブディレクトリを検索するかどうかを決定する値を持つディレクトリの配列を返します。

GetFiles()

現在のディレクトリからファイル一覧を返します。

GetFiles(String)

現在のディレクトリから、指定した検索パターンに一致するファイル一覧を返します。

GetFiles(String, EnumerationOptions)

指定した検索パターンと列挙オプションに一致する現在のディレクトリからファイル一覧を返します。

GetFiles(String, SearchOption)

現在のディレクトリから、指定した検索パターンに一致し、サブディレクトリを検索するかどうかを決定する値を持つファイル一覧を返します。

GetFileSystemInfos()

ディレクトリ内のすべてのファイルとサブディレクトリを表す、厳密に型指定された FileSystemInfo エントリの配列を返します。

GetFileSystemInfos(String)

指定した検索条件に一致するファイルおよびサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。

GetFileSystemInfos(String, EnumerationOptions)

指定した検索パターンと列挙オプションに一致するファイルとサブディレクトリを表す、厳密に型指定された FileSystemInfo オブジェクトの配列を取得します。

GetFileSystemInfos(String, SearchOption)

指定した検索条件に一致するファイルおよびサブディレクトリを表す FileSystemInfo オブジェクトの配列を取得します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
互換性のために残されています。

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

ファイル名と追加の例外情報を使用して SerializationInfo オブジェクトを設定します。

(継承元 FileSystemInfo)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeLifetimeService()
互換性のために残されています。

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
MoveTo(String)

DirectoryInfo のインスタンスとその内容を新しいパスに移動します。

Refresh()

オブジェクトの状態を更新します。

(継承元 FileSystemInfo)
ResolveLinkTarget(Boolean)

指定されたリンクのターゲットを取得します。

(継承元 FileSystemInfo)
SetAccessControl(DirectorySecurity)

DirectorySecurity オブジェクトが示すアクセス制御リスト (ACL) エントリを、現在のDirectoryInfo オブジェクトが示すディレクトリに適用します。

ToString()

DirectoryInfo コンストラクターに渡された元のパスを返します。 このメソッドの代わりに、完全なパスの FullName または Name のプロパティ、またはファイル名またはディレクトリ名を使用します。

拡張メソッド

Create(DirectoryInfo, DirectorySecurity)

新しいファイル ストリームを作成します。作成時は、指定されたディレクトリ セキュリティを使用していることを確認します。 ディレクトリが既に存在する場合は、何も実行されません。

GetAccessControl(DirectoryInfo)

ディレクトリのセキュリティ情報を返します。

GetAccessControl(DirectoryInfo, AccessControlSections)

ディレクトリのセキュリティ情報を返します。

SetAccessControl(DirectoryInfo, DirectorySecurity)

既存のディレクトリのセキュリティ属性を変更します。

適用対象

こちらもご覧ください