この記事の英語版を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語
このドキュメントはアーカイブされており、メンテナンスされていません。

Directory クラス

ディレクトリやサブディレクトリを通じて、作成、移動、および列挙するための静的メソッドを公開します。 このクラスは継承できません。

System::Object
  System.IO::Directory

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

[ComVisibleAttribute(true)]
public ref class Directory abstract sealed

Directory 型で公開されるメンバーは以下のとおりです。

  名前説明
パブリック メソッド静的メンバーXNA Framework によるサポートCreateDirectory(String)指定したパスにすべてのディレクトリとサブディレクトリを作成します。
パブリック メソッド静的メンバーCreateDirectory(String, DirectorySecurity)指定したパスにすべてのディレクトリを作成し、指定した Windows セキュリティを適用します。
パブリック メソッド静的メンバーXNA Framework によるサポートDelete(String)指定したパスから空のディレクトリを削除します。
パブリック メソッド静的メンバーXNA Framework によるサポートDelete(String, Boolean)指定したディレクトリと、特に指定されている場合はディレクトリ内の任意のサブディレクトリおよびファイルを削除します。
パブリック メソッド静的メンバーEnumerateDirectories(String)指定されたパスに存在するディレクトリ名の列挙可能なコレクションを返します。
パブリック メソッド静的メンバーEnumerateDirectories(String, String)指定されたパスから、検索パターンに一致するディレクトリ名の列挙可能なコレクションを返します。
パブリック メソッド静的メンバーEnumerateDirectories(String, String, SearchOption)指定されたパスにあるディレクトリのうち、検索パターンに一致するディレクトリ名の列挙可能なコレクションを返します。オプションでサブディレクトリを検索対象にすることができます。
パブリック メソッド静的メンバーEnumerateFiles(String)指定されたパスに存在するファイル名の列挙可能なコレクションを返します。
パブリック メソッド静的メンバーEnumerateFiles(String, String)指定されたパスから、検索パターンに一致するファイル名の列挙可能なコレクションを返します。
パブリック メソッド静的メンバーEnumerateFiles(String, String, SearchOption)指定されたパスにあるファイルのうち、検索パターンに一致するファイル名の列挙可能なコレクションを返します。オプションでサブディレクトリを検索対象にすることができます。
パブリック メソッド静的メンバーEnumerateFileSystemEntries(String)指定されたパスに存在するファイル システム エントリの列挙可能なコレクションを返します。
パブリック メソッド静的メンバーEnumerateFileSystemEntries(String, String)指定されたパスから、検索パターンに一致するファイル システム エントリの列挙可能なコレクションを返します。
パブリック メソッド静的メンバーEnumerateFileSystemEntries(String, String, SearchOption)指定されたパスにあるディレクトリのうち、検索パターンに一致するファイル名およびディレクトリ名の列挙可能なコレクションを返します。オプションでサブディレクトリを検索対象にすることができます。
パブリック メソッド静的メンバーXNA Framework によるサポートExists指定したパスがディスク上の既存のディレクトリを参照しているかどうかを確認します。
パブリック メソッド静的メンバーGetAccessControl(String)指定したディレクトリのアクセス制御リスト (ACL) エントリをカプセル化する DirectorySecurity オブジェクトを取得します。
パブリック メソッド静的メンバーGetAccessControl(String, AccessControlSections)指定したディレクトリの、指定した種類のアクセス制御リスト (ACL) エントリをカプセル化する DirectorySecurity オブジェクトを取得します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetCreationTimeディレクトリの作成日時を取得します。
パブリック メソッド静的メンバーGetCreationTimeUtc世界協定時刻 (UTC: Coordinated Universal Time) 形式でのディレクトリの作成日時を取得します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetCurrentDirectoryアプリケーションの現在の作業ディレクトリを取得します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetDirectories(String)指定したディレクトリ内のサブディレクトリの名前 (パスを含む) を取得します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetDirectories(String, String)現在のディレクトリ内で指定した検索パターンに一致するディレクトリの配列 (パスを含む) を取得します。
パブリック メソッド静的メンバーGetDirectories(String, String, SearchOption)現在のディレクトリ内で、指定された検索パターンに一致するディレクトリの名前 (パスを含む) を取得します。オプションで、サブディレクトリを検索対象にすることができます。
パブリック メソッド静的メンバーXNA Framework によるサポートGetDirectoryRoot指定したパスのボリューム情報またはルート情報、あるいはその両方を返します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetFiles(String)指定したディレクトリ内のファイルの名前 (パスを含む) を返します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetFiles(String, String)指定したディレクトリ内の指定した検索パターンに一致するファイル名 (パスを含む) を返します。
パブリック メソッド静的メンバーGetFiles(String, String, SearchOption)指定したディレクトリの中から、指定した検索パターンに一致し、サブディレクトリを検索するかどうかを決定する値を持つファイル名 (パスを含む) を返します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetFileSystemEntries(String)指定したディレクトリ内のすべてのファイル名とサブディレクトリ名を返します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetFileSystemEntries(String, String)指定した検索条件に一致するファイル システム エントリの配列を返します。
パブリック メソッド静的メンバーGetFileSystemEntries(String, String, SearchOption)指定されたパスにあるファイルおよびディレクトリのうち、検索パターンに一致するすべてのファイル名およびディレクトリ名の配列を取得します。オプションでサブディレクトリを検索対象にすることができます。
パブリック メソッド静的メンバーXNA Framework によるサポートGetLastAccessTime指定したファイルまたはディレクトリに最後にアクセスした日付と時刻を返します。
パブリック メソッド静的メンバーGetLastAccessTimeUtc指定したファイルまたはディレクトリに最後にアクセスした日付と時刻を世界協定時刻 (UTC) 形式で返します。
パブリック メソッド静的メンバーXNA Framework によるサポートGetLastWriteTime指定したファイルまたはディレクトリに最後に書き込んだ日付と時刻を返します。
パブリック メソッド静的メンバーGetLastWriteTimeUtc指定したファイルまたはディレクトリに最後に書き込んだ日付と時刻を世界協定時刻 (UTC) 形式で返します。
パブリック メソッド静的メンバーGetLogicalDrivesこのコンピューターの論理ドライブ名を "<drive letter>:\" の形式で取得します。
パブリック メソッド静的メンバーGetParent絶対パスと相対パスの両方を含む指定したパスの親ディレクトリを取得します。
パブリック メソッド静的メンバーXNA Framework によるサポートMoveファイルまたはディレクトリ、およびその内容を新しい場所に移動します。
パブリック メソッド静的メンバーSetAccessControl DirectorySecurity オブジェクトが示すアクセス制御リスト (ACL: Access Control List) エントリを、指定したディレクトリに適用します。
パブリック メソッド静的メンバーSetCreationTime指定したファイルまたはディレクトリの作成日時を設定します。
パブリック メソッド静的メンバーSetCreationTimeUtc指定したファイルまたはディレクトリの作成日時を世界協定時刻 (UTC) 形式で設定します。
パブリック メソッド静的メンバーXNA Framework によるサポートSetCurrentDirectoryアプリケーションの現在の作業ディレクトリを指定したディレクトリに設定します。
パブリック メソッド静的メンバーSetLastAccessTime指定したファイルまたはディレクトリに最後にアクセスした日付と時刻を設定します。
パブリック メソッド静的メンバーSetLastAccessTimeUtc指定したファイルまたはディレクトリに最後にアクセスした日付と時刻を世界協定時刻 (UTC) 形式で設定します。
パブリック メソッド静的メンバーSetLastWriteTimeディレクトリに最後に書き込んだ日付と時刻を設定します。
パブリック メソッド静的メンバーSetLastWriteTimeUtcディレクトリに最後に書き込んだ日付と時刻を世界協定時刻 (UTC) 形式で設定します。
このページのトップへ

Directory クラスは、ディレクトリのコピー、移動、名前変更、作成、削除などの一般的な操作に使用します。 Directory クラスは、ディレクトリに対する作成、アクセス、および書き込み操作についての DateTime 情報の取得および設定にも使用できます。

Directory のメソッドはすべて静的であるため、1 つの操作を実行するだけであれば、Directory のメソッドを使用する方が、対応する DirectoryInfo のインスタンス メソッドを使用するよりも効率的な場合があります。 Directory のメソッドのほとんどは、操作対象のディレクトリのパスを必要とします。

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

メモメモ

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

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

  • C# では "c:\\MyDir"、Visual Basic では "c:\MyDir"。

  • C# では "MyDir\\MySubdir"、Visual Basic では "MyDir\MySubDir"。

  • C# では "\\\\MyServer\\MyShare"、Visual Basic では "\\MyServer\MyShare"。

既定では、すべてのユーザーに、新しいディレクトリに対する完全な読み書きアクセス権が与えられます。 パス文字列がディレクトリの区切り記号で終わるディレクトリに対するアクセス許可を要求すると、結果として、そのディレクトリに含まれるすべてのサブディレクトリに対するアクセス許可を要求することになります ("C:\Temp\" など)。 特定のディレクトリに対するアクセス許可のみが必要な場合は、文字列をピリオド (.) で終わらせる必要があります ("C:\Temp\." など)。

共通 I/O タスクの一覧については、「共通 I/O タスク」を参照してください。

指定したディレクトリが存在するかどうかを判断して、存在する場合はそれを削除し、存在しない場合はそれを作成するコード例を次に示します。 この例では、この後にディレクトリを移動し、ディレクトリ内にファイルを作成し、ディレクトリ内のファイルの数をカウントします。


using namespace System;
using namespace System::IO;
int main()
{

   // Specify the directories you want to manipulate.
   String^ path = "c:\\MyDir";
   String^ target = "c:\\TestDir";
   try
   {

      // Determine whether the directory exists.
      if (  !Directory::Exists( path ) )
      {

         // Create the directory it does not exist.
         Directory::CreateDirectory( path );
      }
      if ( Directory::Exists( target ) )
      {

         // Delete the target to ensure it is not there.
         Directory::Delete( target, true );
      }

      // Move the directory.
      Directory::Move( path, target );

      // Create a file in the directory.
      File::CreateText( String::Concat( target, "\\myfile.txt" ) );

      // Count the files in the target directory.
      Console::WriteLine( "The number of files in {0} is {1}", target, Directory::GetFiles( target )->Length );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}



ディレクトリのサイズを計算する方法のコード例を次に示します。


// The following example calculates the size of a directory
// and its subdirectories, if any, and displays the total size
// in bytes.
using namespace System;
using namespace System::IO;

public ref class ShowDirSize
{
public:
    static long DirSize( DirectoryInfo^ d )
    {
        long Size = 0;

        // Add file sizes.
        array<FileInfo^>^ fis = d->GetFiles();

        for each (FileInfo^ fi in fis)
        {
            Size += (long)fi->Length;
        }

        array<DirectoryInfo^>^ dis = d->GetDirectories();

        for each (DirectoryInfo^ di in dis)
        {
            Size += DirSize( di );
        }

        return Size;
    }

    static void Main( array<String^>^args )
    {
        if ( args->Length != 2 )
        {
            Console::WriteLine( "You must provide a directory argument at the command line." );
        }
        else
        {
            DirectoryInfo^ d = gcnew DirectoryInfo( args[ 1 ] );
            long dsize = DirSize(d);
            Console::WriteLine( "The size of {0} and its subdirectories is {1} bytes.", d, dsize );
       }
    }
};

int main()
{
   array<String^>^ args = Environment::GetCommandLineArgs();
   ShowDirSize::Main( args );
}


.NET Framework

サポート対象: 4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

サポート対象: 4、3.5 SP1

Windows 7, Windows Vista SP1 以降, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core はサポート対象外), Windows Server 2008 R2 (SP1 以降で Server Core をサポート), Windows Server 2003 SP2

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。 サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

この型のすべてのパブリック static (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
表示: