次の方法で共有


Directory クラス

定義

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

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
継承
Directory
属性

次の例は、ディレクトリからすべてのテキスト ファイルを取得し、新しいディレクトリに移動する方法を示しています。 ファイルが移動されると、元のディレクトリに存在しなくなります。

using System;
using System.IO;

partial class Example1
{
    static void TwoStringsExample()
    {
        string sourceDirectory = @"C:\current";
        string archiveDirectory = @"C:\archive";

        try
        {
            var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

            foreach (string currentFile in txtFiles)
            {
                string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
open System.IO

let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"

try
    let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

    for currentFile in txtFiles do
        let fileName = currentFile.Substring(sourceDirectory.Length + 1)
        Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))

with e ->
    printfn $"{e.Message}"
Imports System.IO

Partial Class Example1
    Shared Sub TwoStringExample()

        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Class

次の例では、 EnumerateFiles メソッドを使用してディレクトリからテキスト ファイルのコレクションを取得し、そのコレクションをクエリで使用して、"Example" を含むすべての行を検索する方法を示します。

using System;
using System.IO;
using System.Linq;

partial class Program
{
    static void EnumerateFilesExample()
    {
        string archiveDirectory = @"C:\archive";

        var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    from line in File.ReadLines(retrievedFile)
                    where line.Contains("Example")
                    select new
                    {
                        File = retrievedFile,
                        Line = line
                    };

        foreach (var f in files)
        {
            Console.WriteLine("{0} contains {1}", f.File, f.Line);
        }

        Console.WriteLine("{0} lines found.", files.Count().ToString());
    }
}
open System.IO

let archiveDirectory = @"C:\archive"

let files = 
    query {
        for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
        for line in File.ReadLines retrivedFile do
        where (line.Contains "file") 
        select 
            {| File = retrivedFile 
               Line = line |}
    }

for f in files do
    printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
Imports System.IO

Partial Class Program
    Shared Sub EnumerateFilesExample()

        Dim archiveDirectory As String = "C:\archive"

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub
End Class

次の例では、ディレクトリとそのすべてのファイルを新しいディレクトリに移動する方法を示します。 移動後、元のディレクトリは存在しなくなりました。

using System;
using System.IO;

partial class Program
{
    static void DirectoryMoveExample()
    {
        string sourceDirectory = @"C:\source";
        string destinationDirectory = @"C:\destination";

        try
        {
            Directory.Move(sourceDirectory, destinationDirectory);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
open System.IO

let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"

try
    Directory.Move(sourceDirectory, destinationDirectory)
with e ->
    printfn $"{e.Message}"
Imports System.IO

Partial Class Program
    Shared Sub DirectoryMoveExample()

        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub
End Class

注釈

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

  • ディレクトリを作成するには、 CreateDirectory のいずれかの方法を使用します。

  • ディレクトリを削除するには、 Delete のいずれかの方法を使用します。

  • アプリの現在のディレクトリを取得または設定するには、 GetCurrentDirectory または SetCurrentDirectory メソッドを使用します。

  • ディレクトリの作成、アクセス、および書き込みに関連する DateTime 情報を操作するには、 SetLastAccessTimeSetCreationTimeなどのメソッドを使用します。

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

ディレクトリ関連のアクションを 1 つだけ実行する場合は、対応する DirectoryInfo インスタンス メソッドではなく、静的Directory メソッドを使用する方が効率的な場合があります。 ほとんどの Directory メソッドでは、操作するディレクトリへのパスが必要です。

Note

パラメーター path 文字列を受け取るメンバーでは、そのパスが整形式であるか、例外が発生する必要があります。 たとえば、パスが完全修飾されていてもスペース ("c:\temp") で始まる場合、パス文字列はトリミングされないため、パスの形式が正しくないと見なされ、例外が発生します。 さらに、パスまたはパスの組み合わせを 2 回完全修飾することはできません。 たとえば、"c:\temp c:\windows" も例外を発生させます。 パス文字列を受け入れるメソッドを使用する場合は、パスが整形式であることを確認します。 詳細については、Path をご覧ください。

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

  • 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\ とそのすべてのサブディレクトリへのアクセスを許可します)。特定のディレクトリに対してのみアクセス許可を要求するには、パス文字列をピリオドで終了します。 (たとえば、"C:\Temp\." は、そのサブディレクトリではなく、C:\Temp\にのみアクセスを許可します)。

searchPattern パラメーターを受け取るメンバーでは、検索文字列はリテラル文字と 2 つのワイルドカード文字の任意の組み合わせにできます。* と ?。 このパラメーターは正規表現を認識しません。 詳細については、 EnumerateDirectories(String, String) メソッド、または searchPattern パラメーターを使用するその他のメソッドを参照してください。

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

メソッド

名前 説明
CreateDirectory(String, DirectorySecurity)

指定した Windows セキュリティを適用して、既に存在しない限り、指定したパス内のすべてのディレクトリを作成します。

CreateDirectory(String, UnixFileMode)

既に存在しない限り、指定したアクセス許可を持つ指定したパス内のすべてのディレクトリとサブディレクトリを作成します。

CreateDirectory(String)

指定したパスにディレクトリとサブディレクトリが既に存在しない限り、すべてのディレクトリとサブディレクトリを作成します。

CreateSymbolicLink(String, String)

pathToTargetを指すpathによって識別されるディレクトリ シンボリック リンクを作成します。

CreateTempSubdirectory(String)

現在のユーザーの一時ディレクトリに、一意の名前の空のディレクトリを作成します。

Delete(String, Boolean)

指定したディレクトリを削除し、指定されている場合はディレクトリ内のサブディレクトリとファイルを削除します。

Delete(String)

指定したパスから空のディレクトリを削除します。

EnumerateDirectories(String, String, EnumerationOptions)

指定したパス内の検索パターンに一致するディレクトリの完全名の列挙可能なコレクションを返し、必要に応じてサブディレクトリを検索します。

EnumerateDirectories(String, String, SearchOption)

指定したパス内の検索パターンに一致するディレクトリの完全名の列挙可能なコレクションを返し、必要に応じてサブディレクトリを検索します。

EnumerateDirectories(String, String)

指定したパス内の検索パターンに一致するディレクトリの完全名の列挙可能なコレクションを返します。

EnumerateDirectories(String)

指定したパス内のディレクトリの完全名の列挙可能なコレクションを返します。

EnumerateFiles(String, String, EnumerationOptions)

指定したパス内の検索パターンと列挙オプションに一致する完全なファイル名の列挙可能なコレクションを返し、必要に応じてサブディレクトリを検索します。

EnumerateFiles(String, String, SearchOption)

指定したパス内の検索パターンに一致する完全なファイル名の列挙可能なコレクションを返し、必要に応じてサブディレクトリを検索します。

EnumerateFiles(String, String)

指定したパス内の検索パターンに一致する完全なファイル名の列挙可能なコレクションを返します。

EnumerateFiles(String)

指定したパス内の完全なファイル名の列挙可能なコレクションを返します。

EnumerateFileSystemEntries(String, String, EnumerationOptions)

指定したパスの検索パターンと列挙オプションに一致する、ファイル名とディレクトリ名の列挙可能なコレクションを返します。

EnumerateFileSystemEntries(String, String, SearchOption)

指定したパス内の検索パターンに一致するファイル名とディレクトリ名の列挙可能なコレクションを返し、必要に応じてサブディレクトリを検索します。

EnumerateFileSystemEntries(String, String)

指定したパス内の検索パターンに一致するファイル名とディレクトリ名の列挙可能なコレクションを返します。

EnumerateFileSystemEntries(String)

指定したパス内のファイル名とディレクトリ名の列挙可能なコレクションを返します。

Exists(String)

指定されたパスがディスク上の既存のディレクトリを参照しているかどうかを判断します。

GetAccessControl(String, AccessControlSections)

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

GetAccessControl(String)

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

GetCreationTime(String)

ディレクトリの作成日時を取得します。

GetCreationTimeUtc(String)

ディレクトリの世界協定時刻 (UTC) 形式の作成日時を取得します。

GetCurrentDirectory()

アプリケーションの現在の作業ディレクトリを取得します。

GetDirectories(String, String, EnumerationOptions)

指定したディレクトリ内の指定した検索パターンと列挙オプションに一致するサブディレクトリの名前 (パスを含む) を返します。

GetDirectories(String, String, SearchOption)

指定したディレクトリ内の指定した検索パターンに一致するサブディレクトリ (パスを含む) の名前を返し、必要に応じてサブディレクトリを検索します。

GetDirectories(String, String)

指定したディレクトリ内の指定した検索パターンに一致するサブディレクトリの名前 (パスを含む) を返します。

GetDirectories(String)

指定したディレクトリ内のサブディレクトリ (パスを含む) の名前を返します。

GetDirectoryRoot(String)

指定したパスのボリューム情報、ルート情報、またはその両方を返します。

GetFiles(String, String, EnumerationOptions)

指定したディレクトリ内の指定した検索パターンと列挙オプションに一致するファイルの名前 (パスを含む) を返します。

GetFiles(String, String, SearchOption)

サブディレクトリを検索するかどうかを決定する値を使用して、指定したディレクトリ内の指定した検索パターンに一致するファイルの名前 (パスを含む) を返します。

GetFiles(String, String)

指定したディレクトリ内の指定した検索パターンに一致するファイルの名前 (パスを含む) を返します。

GetFiles(String)

指定したディレクトリ内のファイルの名前 (パスを含む) を返します。

GetFileSystemEntries(String, String, EnumerationOptions)

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

GetFileSystemEntries(String, String, SearchOption)

指定したパス内の検索パターンに一致するすべてのファイル名とディレクトリ名の配列を返し、必要に応じてサブディレクトリを検索します。

GetFileSystemEntries(String, String)

指定したパス内の検索パターンと一致するファイル名とディレクトリ名の配列を返します。

GetFileSystemEntries(String)

指定したパス内のすべてのファイルとサブディレクトリの名前を返します。

GetLastAccessTime(String)

指定したファイルまたはディレクトリが最後にアクセスされた日時を返します。

GetLastAccessTimeUtc(String)

指定したファイルまたはディレクトリが最後にアクセスされた日時を協定世界時 (UTC) 形式で返します。

GetLastWriteTime(String)

指定したファイルまたはディレクトリが最後に書き込まれた日時を返します。

GetLastWriteTimeUtc(String)

指定したファイルまたはディレクトリが最後に書き込まれた日時を協定世界時 (UTC) 形式で返します。

GetLogicalDrives()

このコンピューター上の論理ドライブの名前を取得します。

GetParent(String)

絶対パスと相対パスの両方を含む、指定したパスの親ディレクトリを取得します。

Move(String, String)

ファイルまたはディレクトリとその内容を新しい場所に移動します。

ResolveLinkTarget(String, Boolean)

指定したディレクトリ リンクのターゲットを取得します。

SetAccessControl(String, DirectorySecurity)

DirectorySecurity オブジェクトによって記述されたアクセス制御リスト (ACL) エントリを、指定されたディレクトリに適用します。

SetCreationTime(String, DateTime)

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

SetCreationTimeUtc(String, DateTime)

指定したファイルまたはディレクトリの作成日時を協定世界時 (UTC) 形式で設定します。

SetCurrentDirectory(String)

アプリケーションの現在の作業ディレクトリを指定したディレクトリに設定します。

SetLastAccessTime(String, DateTime)

指定したファイルまたはディレクトリが最後にアクセスされた日時を設定します。

SetLastAccessTimeUtc(String, DateTime)

指定したファイルまたはディレクトリが最後にアクセスされた日時を協定世界時 (UTC) 形式で設定します。

SetLastWriteTime(String, DateTime)

ディレクトリが最後に書き込まれた日時を設定します。

SetLastWriteTimeUtc(String, DateTime)

ディレクトリが最後に書き込まれた日時を協定世界時 (UTC) 形式で設定します。

適用対象

こちらもご覧ください