Directory Klasa

Definicja

Udostępnia statyczne metody tworzenia, przechodzenia i wyliczania katalogów i podkatalogów.Exposes static methods for creating, moving, and enumerating through directories and subdirectories. Klasa ta nie może być dziedziczona.This class cannot be inherited.

public ref class Directory abstract sealed
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
Public Class Directory
Dziedziczenie
Directory
Atrybuty

Przykłady

Poniższy przykład pokazuje, jak pobrać wszystkie pliki tekstowe z katalogu i przenieść je do nowego katalogu.The following example shows how to retrieve all the text files from a directory and move them to a new directory. Po przeniesieniu plików nie znajdują się one już w oryginalnym katalogu.After the files are moved, they no longer exist in the original directory.

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);
            }
        }
    }
}
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ą metody EnumerateFiles pobrać kolekcję plików tekstowych z katalogu, a następnie użyć tej kolekcji w zapytaniu, aby znaleźć wszystkie wiersze, które zawierają "przykład".The following example demonstrates how to use the EnumerateFiles method to retrieve a collection of text files from a directory, and then use that collection in a query to find all the lines that contain "Example".

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());
        }
    }
}
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.The following example demonstrates how to move a directory and all its files to a new directory. Po przeniesieniu oryginalny katalog już nie istnieje.The original directory no longer exists after it has been moved.

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);
            }
        }
    }
}
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

Użyj klasy Directory w przypadku typowych operacji, takich jak kopiowanie, przesuwanie, zmiana nazwy, tworzenie i Usuwanie katalogów.Use the Directory class for typical operations such as copying, moving, renaming, creating, and deleting directories.

Metody statyczne klasy Directory sprawdzają zabezpieczenia wszystkich metod.The static methods of the Directory class perform security checks on all methods. Jeśli chcesz ponownie użyć obiektu kilka razy, rozważ użycie odpowiedniej metody wystąpienia DirectoryInfo zamiast tego, ponieważ sprawdzanie zabezpieczeń nie zawsze jest konieczne.If you are going to reuse an object several times, consider using the corresponding instance method of DirectoryInfo instead, because the security check will not always be necessary.

Jeśli wykonujesz tylko jedną akcję powiązaną z katalogiem, może być bardziej wydajne użycie statycznej metody Directory, a nie odpowiedniej metody wystąpienia DirectoryInfo.If you are performing only one directory-related action, it might be more efficient to use a static Directory method rather than a corresponding DirectoryInfo instance method. Większość metod Directory wymaga ścieżki do katalogu, który jest manipulowany.Most Directory methods require the path to the directory that you are manipulating.

Uwaga

W elementach członkowskich, które akceptują parametr path ciągu, ta ścieżka musi być poprawnie sformułowana lub występuje wyjątek.In members that accept a string path parameter, that path must be well-formed or an exception is raised. Na przykład jeśli ścieżka jest w pełni kwalifikowana, ale zaczyna się spacją ("c:\Temp"), ciąg ścieżki nie jest przycięty, dlatego ścieżka jest uznawana za wadliwą i występuje wyjątek.For example, if a path is fully qualified but begins with a space (" c:\temp"), the path string isn't trimmed, so the path is considered malformed and an exception is raised. Ponadto ścieżka lub kombinacja ścieżek nie mogą być w pełni kwalifikowane dwukrotnie.In addition, a path or a combination of paths cannot be fully qualified twice. Na przykład "c:\Temp c:\Windows" wywołuje również wyjątek.For example, "c:\temp c:\windows" also raises an exception. Upewnij się, że ścieżki są poprawnie sformułowane podczas korzystania z metod, które akceptują ciąg ścieżki.Ensure that your paths are well-formed when using methods that accept a path string. Aby uzyskać więcej informacji, zobacz temat Path.For more information see Path.

W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub katalogu.In members that accept a path, the path can refer to a file or a directory. Dla nazwy serwera i udziału można użyć pełnej ścieżki, ścieżki względnej lub ścieżki Universal Naming Convention (UNC).You can use a full path, a relative path, or a Universal Naming Convention (UNC) path for a server and share name. Na przykład wszystkie następujące są dopuszczalne ścieżki:For example, all the following are acceptable paths:

  • "c:\\MyDir" in C#lub "c:\mydir" w Visual Basic."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • "MyDir\\MySubdir" in C#lub "MyDir\MySubDir" w Visual Basic."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" w C#lub "\\MyServer\MyShare" w Visual Basic."\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

Domyślnie pełny dostęp do odczytu i zapisu do nowych katalogów jest udzielany wszystkim użytkownikom.By default, full read/write access to new directories is granted to all users. Jednak aplikacja musi mieć odpowiednie zabezpieczenia, aby uzyskać dostęp do istniejących katalogów.However, the app must have the correct security to access existing directories.

Aby na żądanie uzyskać uprawnienia do katalogu i wszystkich jego podkatalogów, należy zakończyć ciąg ścieżki znakiem separatora katalogu.To demand permissions for a directory and all its subdirectories, end the path string with the directory separator character. (Na przykład "C:\Temp\" udziela dostępu do lokalizacji c:\Temp\ i wszystkich jego podkatalogów.) Aby zażądać uprawnień tylko do określonego katalogu, Zakończ ciąg ścieżki kropką.(For example, "C:\Temp\" grants access to C:\Temp\ and all its subdirectories.) To demand permissions only for a specific directory, end the path string with a period. (Na przykład "C:\Temp\."(For example, "C:\Temp\." zezwala na dostęp tylko do\C:\Temp, a nie do jego podkatalogów.grants access only to C:\Temp\, not to its subdirectories.)

W elementach członkowskich, które akceptują parametr searchPattern, ciąg wyszukiwania może być dowolną kombinacją znaków literału i dwóch symboli wieloznacznych; * i?.In members that accept a searchPattern parameter, the search string can be any combination of literal characters and two wildcard characters; * and ?. Ten parametr nie rozpoznaje wyrażeń regularnych.This parameter does not recognize regular expressions. Aby uzyskać więcej informacji, zobacz metodę EnumerateDirectories(String, String) lub inną metodę korzystającą z parametru searchPattern.For more information, see the EnumerateDirectories(String, String) method or any other method that uses the searchPattern parameter.

Aby uzyskać listę typowych zadań we/wy, zobacz typowe zadania we/wy.For a list of common I/O tasks, see Common I/O Tasks.

Directory i DirectoryInfo nie są obsługiwane w aplikacjach Sklep WindowsWindows Store.Directory and DirectoryInfo are not supported for use in Sklep WindowsWindows Store apps. Aby uzyskać informacje na temat uzyskiwania dostępu do plików i folderów w aplikacjach Sklep WindowsWindows Store, zobacz dostęp do danych i plików (aplikacje w Sklepie Windows).For information about how to access files and folders in Sklep WindowsWindows Store apps, see Accessing data and files (Windows Store apps).

Metody

CreateDirectory(String)

Tworzy wszystkie katalogi i podkatalogi w określonej ścieżce, chyba że już istnieją.Creates all directories and subdirectories in the specified path unless they already exist.

CreateDirectory(String, DirectorySecurity)

Tworzy wszystkie katalogi w określonej ścieżce, chyba że już istnieją, stosując określone zabezpieczenia systemu Windows.Creates all the directories in the specified path, unless they already exist, applying the specified Windows security.

Delete(String)

Usuwa pusty katalog z określonej ścieżki.Deletes an empty directory from a specified path.

Delete(String, Boolean)

Usuwa określony katalog i, jeśli to wskazane, wszystkie podkatalogi i pliki w katalogu.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

EnumerateDirectories(String)

Zwraca wyliczalną kolekcję pełnych nazw katalogów w określonej ścieżce.Returns an enumerable collection of directory full names in a specified path.

EnumerateDirectories(String, String)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.Returns an enumerable collection of directory full names that match a search pattern in a specified path.

EnumerateDirectories(String, String, EnumerationOptions)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an enumerable collection of the directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateDirectories(String, String, SearchOption)

Zwraca wyliczalną kolekcję pełnych nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an enumerable collection of directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFiles(String)

Zwraca wyliczalną kolekcję pełnych nazw plików w określonej ścieżce.Returns an enumerable collection of full file names in a specified path.

EnumerateFiles(String, String)

Zwraca wyliczalną kolekcję pełnych nazw plików, które pasują do wzorca wyszukiwania w określonej ścieżce.Returns an enumerable collection of full file names that match a search pattern in a specified path.

EnumerateFiles(String, String, EnumerationOptions)

Zwraca wyliczalną kolekcję pełnych nazw plików, które pasują do wzorca wyszukiwania i opcji wyliczenia w określonej ścieżce, a opcjonalnie wyszukuje podkatalogi.Returns an enumerable collection of full file names that match a search pattern and enumeration options in a specified path, and optionally searches subdirectories.

EnumerateFiles(String, String, SearchOption)

Zwraca wyliczalną kolekcję pełnych nazw plików, które pasują do wzorca wyszukiwania w określonej ścieżce, i opcjonalnie przeszukuje podkatalogi.Returns an enumerable collection of full file names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFileSystemEntries(String)

Zwraca wyliczalną kolekcję nazw plików i nazw katalogów w określonej ścieżce.Returns an enumerable collection of file names and directory names in a specified path.

EnumerateFileSystemEntries(String, String)

Zwraca wyliczalną kolekcję nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.Returns an enumerable collection of file names and directory names that match a search pattern in a specified path.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

Zwraca wyliczalną kolekcję nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania i opcji wyliczenia w określonej ścieżce.Returns an enumerable collection of file names and directory names that match a search pattern and enumeration options in a specified path.

EnumerateFileSystemEntries(String, String, SearchOption)

Zwraca wyliczalną kolekcję nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an enumerable collection of file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories.

Exists(String)

Określa, czy dana ścieżka odwołuje się do istniejącego katalogu na dysku.Determines whether the given path refers to an existing directory on disk.

GetAccessControl(String)

Pobiera obiekt DirectorySecurity, który hermetyzuje wpisy listy kontroli dostępu (ACL) dla określonego katalogu.Gets a DirectorySecurity object that encapsulates the access control list (ACL) entries for a specified directory.

GetAccessControl(String, AccessControlSections)

Pobiera obiekt DirectorySecurity, który hermetyzuje określony typ wpisów listy kontroli dostępu (ACL) dla określonego katalogu.Gets a DirectorySecurity object that encapsulates the specified type of access control list (ACL) entries for a specified directory.

GetCreationTime(String)

Pobiera datę i godzinę utworzenia katalogu.Gets the creation date and time of a directory.

GetCreationTimeUtc(String)

Pobiera datę i godzinę utworzenia w formacie uniwersalnego czasu koordynowanego (UTC) katalogu.Gets the creation date and time, in Coordinated Universal Time (UTC) format, of a directory.

GetCurrentDirectory()

Pobiera bieżący katalog roboczy aplikacji.Gets the current working directory of the application.

GetDirectories(String)

Zwraca nazwy podkatalogów (łącznie z ich ścieżkami) w określonym katalogu.Returns the names of subdirectories (including their paths) in the specified directory.

GetDirectories(String, String)

Zwraca nazwy podkatalogów (w tym ich ścieżki), które pasują do określonego wzorca wyszukiwania w określonym katalogu.Returns the names of subdirectories (including their paths) that match the specified search pattern in the specified directory.

GetDirectories(String, String, EnumerationOptions)

Zwraca nazwy podkatalogów (w tym ich ścieżki), które pasują do określonego wzorca wyszukiwania i opcji wyliczenia w określonym katalogu.Returns the names of subdirectories (including their paths) that match the specified search pattern and enumeration options in the specified directory.

GetDirectories(String, String, SearchOption)

Zwraca nazwy podkatalogów (w tym ich ścieżki), które pasują do określonego wzorca wyszukiwania w określonym katalogu, i opcjonalnie przeszukuje podkatalogi.Returns the names of the subdirectories (including their paths) that match the specified search pattern in the specified directory, and optionally searches subdirectories.

GetDirectoryRoot(String)

Zwraca informacje o woluminie, informacje główne lub oba dla określonej ścieżki.Returns the volume information, root information, or both for the specified path.

GetFiles(String)

Zwraca nazwy plików (w tym ich ścieżki) w określonym katalogu.Returns the names of files (including their paths) in the specified directory.

GetFiles(String, String)

Zwraca nazwy plików (w tym ich ścieżki), które pasują do określonego wzorca wyszukiwania w określonym katalogu.Returns the names of files (including their paths) that match the specified search pattern in the specified directory.

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.Returns the names of files (including their paths) that match the specified search pattern and enumeration options in the specified directory.

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, przy użyciu wartości, aby określić, czy przeszukiwać podkatalogi.Returns the names of files (including their paths) that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories.

GetFileSystemEntries(String)

Zwraca nazwy wszystkich plików i podkatalogów w określonej ścieżce.Returns the names of all files and subdirectories in a specified path.

GetFileSystemEntries(String, String)

Zwraca tablicę nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.Returns an array of file names and directory names that match a search pattern in a specified path.

GetFileSystemEntries(String, String, EnumerationOptions)

Zwraca tablicę nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania i opcji wyliczenia w określonej ścieżce.Returns an array of file names and directory names that match a search pattern and enumeration options in a specified path.

GetFileSystemEntries(String, String, SearchOption)

Zwraca tablicę wszystkich nazw plików i katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an array of all the file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories.

GetLastAccessTime(String)

Zwraca datę i godzinę ostatniego dostępu do określonego pliku lub katalogu.Returns the date and time the specified file or directory was last accessed.

GetLastAccessTimeUtc(String)

Zwraca datę i godzinę w formacie uniwersalnego czasu koordynowanego (UTC), do ostatniego dostępu do określonego pliku lub katalogu.Returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed.

GetLastWriteTime(String)

Zwraca datę i godzinę ostatniego zapisu określonego pliku lub katalogu.Returns the date and time the specified file or directory was last written to.

GetLastWriteTimeUtc(String)

Zwraca datę i godzinę w formacie uniwersalnego czasu koordynowanego (UTC), że określony plik lub katalog został ostatnio zapisany.Returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last written to.

GetLogicalDrives()

Pobiera nazwy dysków logicznych na tym komputerze w postaci "<literę dysku>:\".Retrieves the names of the logical drives on this computer in the form "<drive letter>:\".

GetParent(String)

Pobiera katalog nadrzędny określonej ścieżki, w tym ścieżki absolutne i względne.Retrieves the parent directory of the specified path, including both absolute and relative paths.

Move(String, String)

Przenosi plik lub katalog wraz z jego zawartością do nowej lokalizacji.Moves a file or a directory and its contents to a new location.

SetAccessControl(String, DirectorySecurity)

Stosuje wpisy listy kontroli dostępu (ACL) opisane przez obiekt DirectorySecurity do określonego katalogu.Applies access control list (ACL) entries described by a DirectorySecurity object to the specified directory.

SetCreationTime(String, DateTime)

Ustawia datę i godzinę utworzenia określonego pliku lub katalogu.Sets the creation date and time for the specified file or directory.

SetCreationTimeUtc(String, DateTime)

Ustawia datę i godzinę utworzenia w formacie uniwersalnego czasu koordynowanego (UTC) dla określonego pliku lub katalogu.Sets the creation date and time, in Coordinated Universal Time (UTC) format, for the specified file or directory.

SetCurrentDirectory(String)

Ustawia bieżący katalog roboczy aplikacji do określonego katalogu.Sets the application's current working directory to the specified directory.

SetLastAccessTime(String, DateTime)

Ustawia datę i godzinę ostatniego dostępu do określonego pliku lub katalogu.Sets the date and time the specified file or directory was last accessed.

SetLastAccessTimeUtc(String, DateTime)

Ustawia datę i godzinę w formacie uniwersalnego czasu koordynowanego (UTC), do ostatniego dostępu do określonego pliku lub katalogu.Sets the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed.

SetLastWriteTime(String, DateTime)

Ustawia datę i godzinę ostatniego zapisu katalogu.Sets the date and time a directory was last written to.

SetLastWriteTimeUtc(String, DateTime)

Ustawia datę i godzinę w formacie uniwersalnego czasu koordynowanego (UTC), w którym katalog został ostatnio zapisany.Sets the date and time, in Coordinated Universal Time (UTC) format, that a directory was last written to.

Dotyczy

Zobacz też