Directory Klass

Definition

Exponerar statiska metoder för att skapa, flytta och räkna upp via kataloger och underkataloger. Det går inte att ärva den här klassen.

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
Arv
Directory
Attribut

Exempel

I följande exempel visas hur du hämtar alla textfiler från en katalog och flyttar dem till en ny katalog. När filerna har flyttats finns de inte längre i den ursprungliga katalogen.

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

I följande exempel visas hur du använder EnumerateFiles metoden för att hämta en samling textfiler från en katalog och sedan använda samlingen i en fråga för att hitta alla rader som innehåller "Exempel".

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

I följande exempel visas hur du flyttar en katalog och alla dess filer till en ny katalog. Den ursprungliga katalogen finns inte längre när den har flyttats.

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

Kommentarer

Directory Använd klassen för vanliga åtgärder som att kopiera, flytta, byta namn, skapa och ta bort kataloger.

Klassens Directory statiska metoder utför säkerhetskontroller på alla metoder. Om du ska återanvända ett objekt flera gånger bör du överväga att använda motsvarande instansmetod DirectoryInfo i stället, eftersom säkerhetskontrollen inte alltid är nödvändig.

Om du bara utför en katalogrelaterad åtgärd kan det vara mer effektivt att använda en statisk Directory metod i stället för en motsvarande DirectoryInfo instansmetod. De flesta Directory metoder kräver sökvägen till den katalog som du manipulerar.

Anmärkning

I medlemmar som accepterar en strängparameter path måste sökvägen vara välformulerad eller så utlöses ett undantag. Om en sökväg till exempel är fullständigt kvalificerad men börjar med ett blanksteg (" c:\temp"), trimmas inte sökvägssträngen, så sökvägen anses vara felaktigt formaterad och ett undantag utlöses. Dessutom kan en sökväg eller en kombination av sökvägar inte vara fullständigt kvalificerad två gånger. Till exempel skapar "c:\temp c:\windows" också ett undantag. Se till att sökvägarna är välformulerad när du använder metoder som accepterar en sökvägssträng. Mer information finns i Path.

I medlemmar som accepterar en sökväg kan sökvägen referera till en fil eller en katalog. Du kan använda en fullständig sökväg, en relativ sökväg eller en UNC-sökväg (Universal Naming Convention) för en server och ett resursnamn. Till exempel är alla följande godkända sökvägar:

  • "c:\\MyDir" i C#, eller "c:\MyDir" i Visual Basic.

  • "MyDir\\MySubdir" i C#, eller "MyDir\MySubDir" i Visual Basic.

  • "\\\\MyServer\\MyShare" i C#, eller "\\MyServer\MyShare" i Visual Basic.

Som standard beviljas fullständig läs-/skrivåtkomst till nya kataloger till alla användare. Appen måste dock ha rätt säkerhet för att få åtkomst till befintliga kataloger.

Om du vill kräva behörigheter för en katalog och alla dess underkataloger avslutar du sökvägssträngen med katalogavgränsartecknet. (Till exempel ger "C:\Temp\" åtkomst till C:\Temp\ och alla dess underkataloger.) Om du bara vill kräva behörigheter för en specifik katalog avslutar du sökvägssträngen med en punkt. (Till exempel "C:\Temp\." ger endast åtkomst till C:\Temp\, inte till dess underkataloger.)

I medlemmar som accepterar en searchPattern parameter kan söksträngen vara valfri kombination av literaltecken och två jokertecken; * och ?. Den här parametern känner inte igen reguljära uttryck. Mer information finns i metoden EnumerateDirectories(String, String) eller någon annan metod som använder parametern searchPattern .

En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.

Directory och DirectoryInfo stöds inte för användning i Windows Store-appar. Information om hur du kommer åt filer och mappar i Windows Store-appar finns i Åtkomst till data och filer (Windows Store-appar).

Metoder

Name Description
CreateDirectory(String, DirectorySecurity)

Skapar alla kataloger i den angivna sökvägen, såvida de inte redan finns och tillämpar den angivna Windows säkerhet.

CreateDirectory(String)

Skapar alla kataloger och underkataloger i den angivna sökvägen om de inte redan finns.

Delete(String, Boolean)

Tar bort den angivna katalogen och, om det anges, eventuella underkataloger och filer i katalogen.

Delete(String)

Tar bort en tom katalog från en angiven sökväg.

EnumerateDirectories(String, String, EnumerationOptions)

Returnerar en uppräkningsbar samling med katalogens fullständiga namn som matchar ett sökmönster i en angiven sökväg och söker eventuellt i underkataloger.

EnumerateDirectories(String, String, SearchOption)

Returnerar en uppräkningsbar samling med fullständiga katalognamn som matchar ett sökmönster i en angiven sökväg och söker eventuellt efter underkataloger.

EnumerateDirectories(String, String)

Returnerar en uppräkningsbar samling med fullständiga katalognamn som matchar ett sökmönster i en angiven sökväg.

EnumerateDirectories(String)

Returnerar en uppräkningsbar samling med fullständiga katalognamn i en angiven sökväg.

EnumerateFiles(String, String, EnumerationOptions)

Returnerar en uppräkningsbar samling med fullständiga filnamn som matchar ett sökmönster och uppräkningsalternativ i en angiven sökväg och söker eventuellt efter underkataloger.

EnumerateFiles(String, String, SearchOption)

Returnerar en uppräkningsbar samling med fullständiga filnamn som matchar ett sökmönster i en angiven sökväg och söker eventuellt i underkataloger.

EnumerateFiles(String, String)

Returnerar en uppräkningsbar samling med fullständiga filnamn som matchar ett sökmönster i en angiven sökväg.

EnumerateFiles(String)

Returnerar en uppräkningsbar samling med fullständiga filnamn i en angiven sökväg.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Returnerar en uppräkningsbar samling filnamn och katalognamn som matchar ett sökmönster och uppräkningsalternativ i en angiven sökväg.

EnumerateFileSystemEntries(String, String, SearchOption)

Returnerar en uppräkningsbar samling filnamn och katalognamn som matchar ett sökmönster i en angiven sökväg och söker eventuellt i underkataloger.

EnumerateFileSystemEntries(String, String)

Returnerar en uppräkningsbar samling filnamn och katalognamn som matchar ett sökmönster i en angiven sökväg.

EnumerateFileSystemEntries(String)

Returnerar en uppräkningsbar samling filnamn och katalognamn i en angiven sökväg.

Exists(String)

Avgör om den angivna sökvägen refererar till en befintlig katalog på disken.

GetAccessControl(String, AccessControlSections)

Hämtar ett DirectorySecurity objekt som kapslar in den angivna typen av åtkomstkontrollistaposter (ACL) för en angiven katalog.

GetAccessControl(String)

Hämtar ett DirectorySecurity objekt som kapslar in ACL-poster (Access Control List) för en angiven katalog.

GetCreationTime(String)

Hämtar skapandedatum och tid för en katalog.

GetCreationTimeUtc(String)

Hämtar skapandedatum och tid i UTC-format (Coordinated Universal Time) för en katalog.

GetCurrentDirectory()

Hämtar programmets aktuella arbetskatalog.

GetDirectories(String, String, EnumerationOptions)

Returnerar namnen på underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret och uppräkningsalternativen i den angivna katalogen.

GetDirectories(String, String, SearchOption)

Returnerar namnen på de underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret i den angivna katalogen och söker eventuellt i underkataloger.

GetDirectories(String, String)

Returnerar namnen på underkataloger (inklusive deras sökvägar) som matchar det angivna sökmönstret i den angivna katalogen.

GetDirectories(String)

Returnerar namnen på underkataloger (inklusive deras sökvägar) i den angivna katalogen.

GetDirectoryRoot(String)

Returnerar volyminformation, rotinformation eller båda för den angivna sökvägen.

GetFiles(String, String, EnumerationOptions)

Returnerar namnen på filer (inklusive deras sökvägar) som matchar det angivna sökmönstret och uppräkningsalternativen i den angivna katalogen.

GetFiles(String, String, SearchOption)

Returnerar namnen på filer (inklusive deras sökvägar) som matchar det angivna sökmönstret i den angivna katalogen med hjälp av ett värde för att avgöra om underkataloger ska sökas igenom.

GetFiles(String, String)

Returnerar namnen på filer (inklusive deras sökvägar) som matchar det angivna sökmönstret i den angivna katalogen.

GetFiles(String)

Returnerar namnen på filer (inklusive deras sökvägar) i den angivna katalogen.

GetFileSystemEntries(String, String, EnumerationOptions)

Returnerar en matris med filnamn och katalognamn som matchar ett sökmönster och uppräkningsalternativ i en angiven sökväg.

GetFileSystemEntries(String, String, SearchOption)

Returnerar en matris med alla filnamn och katalognamn som matchar ett sökmönster i en angiven sökväg och söker eventuellt i underkataloger.

GetFileSystemEntries(String, String)

Returnerar en matris med filnamn och katalognamn som matchar ett sökmönster i en angiven sökväg.

GetFileSystemEntries(String)

Returnerar namnen på alla filer och underkataloger i en angiven sökväg.

GetLastAccessTime(String)

Returnerar datum och tid då den angivna filen eller katalogen senast användes.

GetLastAccessTimeUtc(String)

Returnerar datum och tid i UTC-format (Coordinated Universal Time) som den angivna filen eller katalogen senast användes.

GetLastWriteTime(String)

Returnerar datum och tid då den angivna filen eller katalogen senast skrevs till.

GetLastWriteTimeUtc(String)

Returnerar datum och tid i UTC-format (Coordinated Universal Time) som den angivna filen eller katalogen senast skrevs till.

GetLogicalDrives()

Hämtar namnen på de logiska enheterna på den här datorn.

GetParent(String)

Hämtar den överordnade katalogen för den angivna sökvägen, inklusive både absoluta och relativa sökvägar.

Move(String, String)

Flyttar en fil eller en katalog och dess innehåll till en ny plats.

SetAccessControl(String, DirectorySecurity)

Tillämpar poster i åtkomstkontrollistan (ACL) som beskrivs av ett DirectorySecurity objekt i den angivna katalogen.

SetCreationTime(String, DateTime)

Anger skapandedatum och tid för den angivna filen eller katalogen.

SetCreationTimeUtc(String, DateTime)

Anger skapandedatum och tid i UTC-format (Coordinated Universal Time) för den angivna filen eller katalogen.

SetCurrentDirectory(String)

Anger programmets aktuella arbetskatalog till den angivna katalogen.

SetLastAccessTime(String, DateTime)

Anger datum och tid då den angivna filen eller katalogen senast användes.

SetLastAccessTimeUtc(String, DateTime)

Anger datum och tid i UTC-format (Coordinated Universal Time) som den angivna filen eller katalogen senast användes.

SetLastWriteTime(String, DateTime)

Anger datum och tid som en katalog senast skrevs till.

SetLastWriteTimeUtc(String, DateTime)

Anger datum och tid i UTC-format (Coordinated Universal Time) som en katalog senast skrevs till.

Gäller för

Se även