Udostępnij za pośrednictwem


Directory Klasa

Definicja

Uwidacznia metody statyczne do tworzenia, przenoszenia i wyliczania za pomocą katalogów i podkatalogów. Klasa ta nie może być dziedziczona.

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;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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

Module Module1

    Sub Main()
        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 Module

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 "Przykład".

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

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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

Module Module1

    Sub Main()
        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 Module

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;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            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

Module Module1

    Sub Main()
        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 Module

Uwagi

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

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

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

Uwaga

W elementach członkowskich, które akceptują parametr ciągu path , ta ścieżka musi być dobrze 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 przycinany, więc ścieżka jest uznawana za źle sformułowaną i zgłaszany jest wyjątek. Ponadto ścieżka lub kombinacja ścieżek nie może być dwukrotnie w pełni kwalifikowana. Na przykład "c:\temp c:\windows" również zgłasza wyjątek. Upewnij się, że ścieżki są dobrze 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 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\"." udziela dostępu 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.

Directory i DirectoryInfo nie są obsługiwane do użycia w aplikacjach ze Sklepu Windows. Aby uzyskać informacje na temat uzyskiwania dostępu do plików i folderów w aplikacjach ze Sklepu Windows, zobacz Uzyskiwanie dostępu do danych i plików (aplikacje ze Sklepu Windows).

Metody

CreateDirectory(String)

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

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ą.

CreateSymbolicLink(String, String)

Tworzy link symboliczny katalogu zidentyfikowany przez path ten element do pathToTargetelementu .

CreateTempSubdirectory(String)

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

Delete(String)

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

Delete(String, Boolean)

Usuwa określony katalog i, jeśli jest to wskazane, wszelkie podkatalogi i pliki w katalogu.

EnumerateDirectories(String)

Zwraca wyliczalną kolekcję pełnych nazw katalogu w określonej ścieżce.

EnumerateDirectories(String, String)

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

EnumerateDirectories(String, String, EnumerationOptions)

Zwraca wyliczenie kolekcji pełnych nazw katalogu pasujących do wzorca wyszukiwania w określonej ścieżce i opcjonalnie wyszukuje podkatalogi.

EnumerateDirectories(String, String, SearchOption)

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

EnumerateFiles(String)

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

EnumerateFiles(String, String)

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

EnumerateFiles(String, String, EnumerationOptions)

Zwraca wyliczenie kolekcji pełnych nazw plików pasujących do wzorca wyszukiwania i opcji wyliczenia w określonej ścieżce oraz opcjonalnie wyszukuje podkatalogi.

EnumerateFiles(String, String, SearchOption)

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

EnumerateFileSystemEntries(String)

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

EnumerateFileSystemEntries(String, String)

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

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Zwraca wyliczalną kolekcję nazw plików i nazw katalogów pasujących do wzorca wyszukiwania i opcji wyliczenia w określonej ścieżce.

EnumerateFileSystemEntries(String, String, SearchOption)

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

Exists(String)

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

GetAccessControl(String)

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

GetAccessControl(String, AccessControlSections)

DirectorySecurity Pobiera obiekt, który hermetyzuje określony typ wpisów 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)

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

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, 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, a opcjonalnie wyszukuje podkatalogi.

GetDirectoryRoot(String)

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

GetFiles(String)

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

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, String, EnumerationOptions)

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

GetFiles(String, String, SearchOption)

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

GetFileSystemEntries(String)

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

GetFileSystemEntries(String, String)

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

GetFileSystemEntries(String, String, EnumerationOptions)

Zwraca tablicę nazw plików i nazw katalogów pasujących do wzorca wyszukiwania i opcji wyliczenia 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.

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 ostatnio został zapisany określony plik lub katalog.

GetLogicalDrives()

Pobiera nazwy dysków logicznych na tym komputerze w postaci "<litera> dysku:\".

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ż