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 {}
    }
}
open System.IO

// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"
try
    // Determine whether the directory exists.
    if di.Exists then
        // Indicate that the directory already exists.
        printfn "That path exists already."
    else
        // Try to create the directory.
        di.Create()
        printfn "The directory was created successfully."

        // Delete the directory.
        di.Delete()
        printfn "The directory was deleted successfully."
with e ->
    printfn $"The process failed: {e}"
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.
}
open System.IO

let rec copyAll (source: DirectoryInfo) (target: DirectoryInfo) =
    if source.FullName.ToLower() <> target.FullName.ToLower() then
        // Check if the target directory exists, if not, create it.
        if not (Directory.Exists target.FullName) then
            Directory.CreateDirectory target.FullName |> ignore

        // Copy each file into it's new directory.
        for fi in source.GetFiles() do
            printfn $@"Copying {target.FullName}\{fi.Name}"
            fi.CopyTo(Path.Combine(string target, fi.Name), true) |> ignore

        // Copy each subdirectory using recursion.
        for diSourceSubDir in source.GetDirectories() do
            target.CreateSubdirectory diSourceSubDir.Name
            |> copyAll diSourceSubDir

let sourceDirectory = @"c:\sourceDirectory"
let targetDirectory = @"c:\targetDirectory"

let diSource = DirectoryInfo sourceDirectory
let diTarget = 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

にあるリンク FullNameのターゲット パスを取得します。この null インスタンスが FileSystemInfo リンクを表していない場合は を取得します。

(継承元 FileSystemInfo)
Name

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

Parent

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

Root

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

UnixFileMode

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

(継承元 FileSystemInfo)

メソッド

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 のプロパティ、またはファイル名またはディレクトリ名を使用します。

ToString()

元のパスを返します。 完全なパスの FullName または Name のプロパティ、またはファイル名またはディレクトリ名を使用します。

(継承元 FileSystemInfo)

拡張メソッド

Create(DirectoryInfo, DirectorySecurity)

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

GetAccessControl(DirectoryInfo)

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

GetAccessControl(DirectoryInfo, AccessControlSections)

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

SetAccessControl(DirectoryInfo, DirectorySecurity)

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

適用対象

こちらもご覧ください