DirectoryInfo Klas

Definitie

Toont exemplaarmethoden voor het maken, verplaatsen en inventariseren van mappen en submappen. Deze klasse kan niet worden overgenomen.

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
Overname
DirectoryInfo
Overname
Kenmerken

Voorbeelden

In het volgende voorbeeld ziet u enkele van de belangrijkste leden van de DirectoryInfo klas.

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

In het volgende voorbeeld ziet u hoe u een map en de inhoud ervan kopieert.

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))
        {
            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

Opmerkingen

Gebruik de DirectoryInfo klasse voor typische bewerkingen, zoals kopiëren, verplaatsen, hernoemen, maken en verwijderen van mappen.

Als u een object meerdere keren opnieuw wilt gebruiken, kunt u overwegen de instantiemethode van DirectoryInfo in plaats van de bijbehorende statische methoden van de Directory klasse te gebruiken, omdat een beveiligingscontrole niet altijd nodig is.

Note

In leden die een pad als invoertekenreeks accepteren, moet dat pad goed zijn gevormd of wordt er een uitzondering gegenereerd. Als een pad bijvoorbeeld volledig is gekwalificeerd, maar begint met een spatie, wordt het pad niet ingekort in methoden van de klasse. Het pad is daarom ongeldig en er wordt een uitzondering gegenereerd. Op dezelfde manier kan een pad of een combinatie van paden niet twee keer volledig worden gekwalificeerd. Met 'c:\temp c:\windows' wordt in de meeste gevallen ook een uitzondering gegenereerd. Zorg ervoor dat uw paden goed zijn opgemaakt wanneer u methoden gebruikt die een padtekenreeks accepteren.

In leden die een pad accepteren, kan het pad verwijzen naar een bestand of alleen een map. Het opgegeven pad kan ook verwijzen naar een relatief pad of een UNC-pad (Universal Naming Convention) voor een server en sharenaam. Zo zijn alle volgende acceptabele paden:

  • "c:\\MyDir\\MyFile.txt" in C# of "c:\MyDir\MyFile.txt" in Visual Basic.

  • "c:\\MyDir" in C# of "c:\MyDir" in Visual Basic.

  • "MyDir\\MySubdir" in C# of "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" in C# of "\\MyServer\MyShare" in Visual Basic.

Standaard wordt volledige lees-/schrijftoegang tot nieuwe mappen verleend aan alle gebruikers.

Zie Algemene I/O-taken voor een lijst met algemene I/O-taken.

Constructors

Name Description
DirectoryInfo(String)

Initialiseert een nieuw exemplaar van de DirectoryInfo klasse op het opgegeven pad.

Velden

Name Description
FullPath

Vertegenwoordigt het volledig gekwalificeerde pad van de map of het bestand.

(Overgenomen van FileSystemInfo)
OriginalPath

Het pad dat oorspronkelijk door de gebruiker is opgegeven, ongeacht of dit relatief of absoluut is.

(Overgenomen van FileSystemInfo)

Eigenschappen

Name Description
Attributes

Hiermee worden de kenmerken voor het huidige bestand of de huidige map opgehaald of ingesteld.

(Overgenomen van FileSystemInfo)
CreationTime

Hiermee haalt u de aanmaaktijd van het huidige bestand of de huidige map op of stelt u deze in.

(Overgenomen van FileSystemInfo)
CreationTimeUtc

Hiermee haalt u de aanmaaktijd, in gecoördineerde universele tijd (UTC), van het huidige bestand of de huidige map op.

(Overgenomen van FileSystemInfo)
Exists

Hiermee wordt een waarde opgehaald die aangeeft of de map bestaat.

Extension

Hiermee haalt u het extensiegedeelte van de bestandsnaam op, inclusief de voorlooppunt . , zelfs als het de volledige bestandsnaam is of een lege tekenreeks als er geen extensie aanwezig is.

(Overgenomen van FileSystemInfo)
FullName

Hiermee haalt u het volledige pad van de map op.

FullName

Hiermee haalt u het volledige pad van de map of het bestand op.

(Overgenomen van FileSystemInfo)
LastAccessTime

Hiermee wordt de tijd opgehaald of ingesteld waarop het huidige bestand of de huidige map voor het laatst is geopend.

(Overgenomen van FileSystemInfo)
LastAccessTimeUtc

Hiermee wordt de tijd opgehaald of ingesteld, in gecoördineerde universele tijd (UTC), dat het huidige bestand of de huidige map voor het laatst is geopend.

(Overgenomen van FileSystemInfo)
LastWriteTime

Hiermee wordt de tijd opgehaald of ingesteld waarop het huidige bestand of de huidige map voor het laatst is geschreven.

(Overgenomen van FileSystemInfo)
LastWriteTimeUtc

Hiermee wordt de tijd opgehaald of ingesteld, in gecoördineerde universele tijd (UTC), wanneer het huidige bestand of de huidige map voor het laatst naar is geschreven.

(Overgenomen van FileSystemInfo)
Name

Hiermee haalt u de naam van dit DirectoryInfo exemplaar op.

Parent

Hiermee haalt u de bovenliggende map van een opgegeven submap op.

Root

Hiermee haalt u het hoofdgedeelte van de map op.

Methoden

Name Description
Create()

Hiermee maakt u een map.

Create(DirectorySecurity)

Hiermee maakt u een map met behulp van een DirectorySecurity object.

CreateObjRef(Type)

Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object.

(Overgenomen van MarshalByRefObject)
CreateSubdirectory(String, DirectorySecurity)

Hiermee maakt u een submap of submappen op het opgegeven pad met de opgegeven beveiliging. Het opgegeven pad kan relatief zijn ten opzichte van dit exemplaar van de DirectoryInfo klasse.

CreateSubdirectory(String)

Hiermee maakt u een submap of submappen op het opgegeven pad. Het opgegeven pad kan relatief zijn ten opzichte van dit exemplaar van de DirectoryInfo klasse.

Delete()

Hiermee verwijdert u dit DirectoryInfo als deze leeg is.

Delete(Boolean)

Hiermee verwijdert u dit exemplaar van een DirectoryInfo, waarmee wordt opgegeven of submappen en bestanden moeten worden verwijderd.

EnumerateDirectories()

Retourneert een inventariserbare verzameling mapgegevens in de huidige map.

EnumerateDirectories(String, EnumerationOptions)

Retourneert een inventariserbare verzameling mapgegevens die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.

EnumerateDirectories(String, SearchOption)

Retourneert een inventariserbare verzameling mapgegevens die overeenkomen met een opgegeven zoekpatroon en submapoptie voor zoeken.

EnumerateDirectories(String)

Retourneert een inventariserbare verzameling mapgegevens die overeenkomen met een opgegeven zoekpatroon.

EnumerateFiles()

Retourneert een inventariserbare verzameling bestandsgegevens in de huidige map.

EnumerateFiles(String, EnumerationOptions)

Retourneert een inventariserbare verzameling bestandsgegevens die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.

EnumerateFiles(String, SearchOption)

Retourneert een inventariserbare verzameling bestandsgegevens die overeenkomen met een opgegeven zoekpatroon en zoeksubmapoptie.

EnumerateFiles(String)

Retourneert een inventariserbare verzameling bestandsgegevens die overeenkomt met een zoekpatroon.

EnumerateFileSystemInfos()

Retourneert een inventariserbare verzameling bestandssysteemgegevens in de huidige map.

EnumerateFileSystemInfos(String, EnumerationOptions)

Retourneert een inventariserbare verzameling bestandssysteemgegevens die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.

EnumerateFileSystemInfos(String, SearchOption)

Retourneert een inventariserbare verzameling bestandssysteemgegevens die overeenkomen met een opgegeven zoekpatroon en zoeksubmapoptie.

EnumerateFileSystemInfos(String)

Retourneert een inventariserbare verzameling bestandssysteemgegevens die overeenkomen met een opgegeven zoekpatroon.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetAccessControl()

Hiermee haalt u een DirectorySecurity object op dat de ACL-vermeldingen (Access Control List) inkapselt voor de map die wordt beschreven door het huidige DirectoryInfo object.

GetAccessControl(AccessControlSections)

Hiermee haalt u een DirectorySecurity object op dat het opgegeven type ACL-vermeldingen (Access Control List) inkapselt voor de map die wordt beschreven door het huidige DirectoryInfo object.

GetDirectories()

Retourneert de submappen van de huidige map.

GetDirectories(String, EnumerationOptions)

Retourneert een matrix met mappen in de huidige DirectoryInfo overeenkomst met het opgegeven zoekpatroon en de opsommingsopties.

GetDirectories(String, SearchOption)

Retourneert een matrix met mappen in de huidige DirectoryInfo overeenkomst met de opgegeven zoekcriteria en het gebruik van een waarde om te bepalen of submappen moeten worden gezocht.

GetDirectories(String)

Retourneert een matrix met mappen in de huidige DirectoryInfo overeenkomst met de opgegeven zoekcriteria.

GetFiles()

Retourneert een bestandslijst uit de huidige map.

GetFiles(String, EnumerationOptions)

Retourneert een bestandslijst uit de huidige map die overeenkomt met het opgegeven zoekpatroon en de opsommingsopties.

GetFiles(String, SearchOption)

Retourneert een lijst met bestanden uit de huidige map die overeenkomt met het opgegeven zoekpatroon en met behulp van een waarde om te bepalen of submappen moeten worden gezocht.

GetFiles(String)

Retourneert een bestandslijst uit de huidige map die overeenkomt met het opgegeven zoekpatroon.

GetFileSystemInfos()

Retourneert een matrix met sterk getypte FileSystemInfo vermeldingen die alle bestanden en submappen in een map vertegenwoordigen.

GetFileSystemInfos(String, EnumerationOptions)

Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.

GetFileSystemInfos(String, SearchOption)

Hiermee haalt u een matrix van FileSystemInfo objecten op die de bestanden en submappen vertegenwoordigen die overeenkomen met de opgegeven zoekcriteria.

GetFileSystemInfos(String)

Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die voldoen aan de opgegeven zoekcriteria.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetLifetimeService()

Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd.

(Overgenomen van MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

Hiermee stelt u het SerializationInfo object in met de bestandsnaam en aanvullende informatie over uitzonderingen.

(Overgenomen van FileSystemInfo)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
InitializeLifetimeService()

Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren.

(Overgenomen van MarshalByRefObject)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
MemberwiseClone(Boolean)

Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object.

(Overgenomen van MarshalByRefObject)
MoveTo(String)

Hiermee verplaatst u een DirectoryInfo exemplaar en de inhoud ervan naar een nieuw pad.

Refresh()

Hiermee wordt de status van het object vernieuwd.

(Overgenomen van FileSystemInfo)
SetAccessControl(DirectorySecurity)

Hiermee past u ACL-vermeldingen (Access Control List) toe die door een DirectorySecurity object worden beschreven in de map die wordt beschreven door het huidige DirectoryInfo object.

ToString()

Retourneert het oorspronkelijke pad dat is doorgegeven aan de DirectoryInfo constructor. Gebruik de FullName of Name eigenschappen voor de volledige pad- of bestands- of mapnaam in plaats van deze methode.

Van toepassing op

Zie ook