Directory Klasa

Definicja

Uwidacznia statyczne metody tworzenia, przenoszenia i wyliczania za pomocą katalogów i podkatalogów. Tej klasy nie można dziedziczyć.

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
Dziedziczenie
Directory
Atrybuty

Przykłady

W poniższym przykładzie pokazano, jak pobrać wszystkie pliki tekstowe z katalogu i przenieść je do nowego katalogu. Po przeniesieniu plików nie istnieją już w oryginalnym katalogu.

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

W poniższym przykładzie pokazano, jak za pomocą EnumerateFiles metody pobrać kolekcję plików tekstowych z katalogu, a następnie użyć tej kolekcji w zapytaniu, aby znaleźć wszystkie wiersze zawierające ciąg "Przykład".

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

W poniższym przykładzie pokazano, jak przenieść katalog i wszystkie jego pliki do nowego katalogu. Oryginalny katalog nie istnieje już po przeniesieniu.

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

Uwagi

Directory Użyj klasy dla typowych operacji, takich jak kopiowanie, przenoszenie, zmienianie nazw, tworzenie i usuwanie katalogów.

Metody Directory statyczne klasy przeprowadzają kontrole zabezpieczeń na wszystkich metodach. Jeśli ponownie użyjesz obiektu kilka razy, rozważ użycie odpowiedniej metody DirectoryInfo wystąpienia zamiast, ponieważ sprawdzanie zabezpieczeń nie zawsze będzie konieczne.

Jeśli wykonujesz tylko jedną akcję związaną z katalogiem, bardziej wydajne może być użycie metody statycznej Directory , a nie odpowiedniej DirectoryInfo metody wystąpienia. Większość Directory metod wymaga ścieżki do katalogu, którym manipulujesz.

Note

W elementach członkowskich, które akceptują parametr ciągu path , ścieżka musi być poprawnie sformułowana lub zgłaszany jest wyjątek. Jeśli na przykład ścieżka jest w pełni kwalifikowana, ale zaczyna się od spacji ("c:\temp"), ciąg ścieżki nie jest przycięty, więc ścieżka jest uważana za źle sformułowaną i zgłaszany jest wyjątek. Ponadto ścieżka lub kombinacja ścieżek nie może być w pełni kwalifikowana dwa razy. Na przykład "c:\temp c:\windows" zgłasza również wyjątek. Upewnij się, że ścieżki są prawidłowo sformułowane podczas używania metod, które akceptują ciąg ścieżki. Aby uzyskać więcej informacji, zobacz:Path.

W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub katalogu. Możesz użyć pełnej ścieżki, ścieżki względnej lub ścieżki uniwersalnej konwencji nazewnictwa (UNC) dla serwera i nazwy udziału. Na przykład wszystkie następujące ścieżki są dopuszczalne:

  • "c:\MyDir" w języku C#lub "c:\MyDir" w Visual Basic.

  • "MyDir\\MySubdir" w języku C# lub "MyDir\MySubDir" w Visual Basic.

  • "\\\MyServer\\MyShare" w języku C#lub "\MyServer\MyShare" w Visual Basic.

Domyślnie pełny dostęp do odczytu/zapisu do nowych katalogów jest przyznawany wszystkim użytkownikom. Jednak aplikacja musi mieć odpowiednie zabezpieczenia, aby uzyskać dostęp do istniejących katalogów.

Aby zażądać uprawnień do katalogu i wszystkich jego podkatalogów, zakończ ciąg ścieżki znakiem separatora katalogu. (Na przykład "C:\Temp\" udziela dostępu do katalogu C:\Temp\ i wszystkich jego podkatalogów). Aby zażądać uprawnień tylko dla określonego katalogu, zakończ ciąg ścieżki kropką. (Na przykład "C:\Temp\". przyznaje dostęp tylko do C:\Temp\, a nie do jego podkatalogów).

W elementach członkowskich, które akceptują parametr, ciąg wyszukiwania może być dowolną kombinacją searchPattern znaków literału i dwóch symboli wieloznacznych; * i ?. Ten parametr nie rozpoznaje wyrażeń regularnych. Aby uzyskać więcej informacji, zobacz metodę EnumerateDirectories(String, String) lub inną metodę, która używa parametru searchPattern .

Aby uzyskać listę typowych zadań we/wy, zobacz Typowe zadania we/wy.

Metody

Nazwa Opis
CreateDirectory(String, DirectorySecurity)

Tworzy wszystkie katalogi w określonej ścieżce, chyba że już istnieją, stosując określone zabezpieczenia systemu Windows.

CreateDirectory(String, UnixFileMode)

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce z określonymi uprawnieniami, chyba że już istnieją.

CreateDirectory(String)

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce, chyba że już istnieją.

CreateSymbolicLink(String, String)

Tworzy link symboliczny katalogu zidentyfikowany przez path polecenie .pathToTarget

CreateTempSubdirectory(String)

Tworzy unikatowy, pusty katalog w katalogu tymczasowym bieżącego użytkownika.

Delete(String, Boolean)

Usuwa określony katalog i, jeśli zostanie wskazany, wszystkie podkatalogi i pliki w katalogu.

Delete(String)

Usuwa pusty katalog z określonej ścieżki.

EnumerateDirectories(String, String, EnumerationOptions)

Zwraca wyliczaną kolekcję pełnych nazw katalogu, które pasują do wzorca wyszukiwania w określonej ścieżce, i opcjonalnie wyszukuje podkatalogi.

EnumerateDirectories(String, String, SearchOption)

Zwraca wyliczaną kolekcję pełnych nazw katalogów pasujących do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi.

EnumerateDirectories(String, String)

Zwraca wyliczaną kolekcję pełnych nazw katalogów pasujących do wzorca wyszukiwania w określonej ścieżce.

EnumerateDirectories(String)

Zwraca wyliczaną kolekcję pełnych nazw katalogów w określonej ścieżce.

EnumerateFiles(String, String, EnumerationOptions)

Zwraca wyliczaną kolekcję pełnych nazw plików, które pasują do wzorca wyszukiwania i opcji wyliczania w określonej ścieżce, a opcjonalnie wyszukuje podkatalogi.

EnumerateFiles(String, String, SearchOption)

Zwraca wyliczaną kolekcję pełnych nazw plików pasujących do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi.

EnumerateFiles(String, String)

Zwraca wyliczaną kolekcję pełnych nazw plików, które pasują do wzorca wyszukiwania w określonej ścieżce.

EnumerateFiles(String)

Zwraca wyliczaną kolekcję pełnych nazw plików w określonej ścieżce.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Zwraca wyliczaną kolekcję nazw plików i nazw katalogów, które są zgodne ze wzorcem wyszukiwania i opcjami wyliczania w określonej ścieżce.

EnumerateFileSystemEntries(String, String, SearchOption)

Zwraca wyliczaną kolekcję nazw plików i nazw katalogów pasujących do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi.

EnumerateFileSystemEntries(String, String)

Zwraca wyliczaną kolekcję nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.

EnumerateFileSystemEntries(String)

Zwraca wyliczaną kolekcję nazw plików i nazw katalogów w określonej ścieżce.

Exists(String)

Określa, czy dana ścieżka odwołuje się do istniejącego katalogu na dysku.

GetAccessControl(String, AccessControlSections)

DirectorySecurity Pobiera obiekt, który hermetyzuje określony typ wpisów listy kontroli dostępu (ACL) dla określonego katalogu.

GetAccessControl(String)

DirectorySecurity Pobiera obiekt, który hermetyzuje wpisy listy kontroli dostępu (ACL) dla określonego katalogu.

GetCreationTime(String)

Pobiera datę i godzinę utworzenia katalogu.

GetCreationTimeUtc(String)

Pobiera datę i godzinę utworzenia w formacie uniwersalnego czasu koordynowanego (UTC) katalogu.

GetCurrentDirectory()

Pobiera bieżący katalog roboczy aplikacji.

GetDirectories(String, String, EnumerationOptions)

Zwraca nazwy podkatalogów (w tym ich ścieżek), które pasują do określonego wzorca wyszukiwania i opcji wyliczenia w określonym katalogu.

GetDirectories(String, String, SearchOption)

Zwraca nazwy podkatalogów (w tym ich ścieżek), które pasują do określonego wzorca wyszukiwania w określonym katalogu, i opcjonalnie wyszukuje podkatalogi.

GetDirectories(String, String)

Zwraca nazwy podkatalogów (w tym ich ścieżek), które pasują do określonego wzorca wyszukiwania w określonym katalogu.

GetDirectories(String)

Zwraca nazwy podkatalogów (w tym ich ścieżek) w określonym katalogu.

GetDirectoryRoot(String)

Zwraca informacje o woluminie, informacje główne lub oba dla określonej ścieżki.

GetFiles(String, String, EnumerationOptions)

Zwraca nazwy plików (w tym ich ścieżek), które są zgodne z określonym wzorcem wyszukiwania i opcjami wyliczania w określonym katalogu.

GetFiles(String, String, SearchOption)

Zwraca nazwy plików (w tym ich ścieżek), które pasują do określonego wzorca wyszukiwania w określonym katalogu, przy użyciu wartości w celu określenia, czy przeszukiwać podkatalogi.

GetFiles(String, String)

Zwraca nazwy plików (w tym ich ścieżek), które pasują do określonego wzorca wyszukiwania w określonym katalogu.

GetFiles(String)

Zwraca nazwy plików (w tym ich ścieżek) w określonym katalogu.

GetFileSystemEntries(String, String, EnumerationOptions)

Zwraca tablicę nazw plików i nazw katalogów, które są zgodne ze wzorcem wyszukiwania i opcjami wyliczania w określonej ścieżce.

GetFileSystemEntries(String, String, SearchOption)

Zwraca tablicę wszystkich nazw plików i nazw katalogów pasujących do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi.

GetFileSystemEntries(String, String)

Zwraca tablicę nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.

GetFileSystemEntries(String)

Zwraca nazwy wszystkich plików i podkatalogów w określonej ścieżce.

GetLastAccessTime(String)

Zwraca datę i godzinę ostatniego uzyskania dostępu do określonego pliku lub katalogu.

GetLastAccessTimeUtc(String)

Zwraca datę i godzinę w formacie uniwersalnego czasu koordynowanego (UTC), do którego ostatnio uzyskiwano dostęp do określonego pliku lub katalogu.

GetLastWriteTime(String)

Zwraca datę i godzinę ostatniego zapisania określonego pliku lub katalogu.

GetLastWriteTimeUtc(String)

Zwraca datę i godzinę w formacie uniwersalnego czasu koordynowanego (UTC), do którego został ostatnio zapisany określony plik lub katalog.

GetLogicalDrives()

Pobiera nazwy dysków logicznych na tym komputerze.

GetParent(String)

Pobiera katalog nadrzędny określonej ścieżki, w tym ścieżki bezwzględne i względne.

Move(String, String)

Przenosi plik lub katalog i jego zawartość do nowej lokalizacji.

ResolveLinkTarget(String, Boolean)

Pobiera element docelowy określonego linku katalogu.

SetAccessControl(String, DirectorySecurity)

Stosuje wpisy listy kontroli dostępu (ACL) opisane przez DirectorySecurity obiekt do określonego katalogu.

SetCreationTime(String, DateTime)

Ustawia datę i godzinę utworzenia określonego pliku lub katalogu.

SetCreationTimeUtc(String, DateTime)

Ustawia datę i godzinę utworzenia w formacie uniwersalnego czasu koordynowanego (UTC) dla określonego pliku lub katalogu.

SetCurrentDirectory(String)

Ustawia bieżący katalog roboczy aplikacji na określony katalog.

SetLastAccessTime(String, DateTime)

Ustawia datę i godzinę ostatniego uzyskania dostępu do określonego pliku lub katalogu.

SetLastAccessTimeUtc(String, DateTime)

Ustawia datę i godzinę w formacie uniwersalnego czasu koordynowanego (UTC), do którego ostatnio uzyskiwano dostęp do określonego pliku lub katalogu.

SetLastWriteTime(String, DateTime)

Ustawia datę i godzinę ostatniego zapisania katalogu.

SetLastWriteTimeUtc(String, DateTime)

Ustawia datę i godzinę w formacie uniwersalnego czasu koordynowanego (UTC), do którego został ostatnio zapisany katalog.

Dotyczy

Zobacz też