Directory Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.
Aby utworzyć katalog, użyj jednej z CreateDirectory metod.
Aby usunąć katalog, użyj jednej z Delete metod.
Aby pobrać lub ustawić bieżący katalog dla aplikacji, użyj GetCurrentDirectory metody lub SetCurrentDirectory .
Aby manipulować DateTime informacjami związanymi z tworzeniem, dostępem i pisaniem katalogu, użyj metod, takich jak SetLastAccessTime i SetCreationTime.
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 |
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. |