Directory Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Statikus metódusokat tesz elérhetővé könyvtárak és alkönyvtárak létrehozásával, áthelyezésével és számbavételével. Ez az osztály nem örökölhető.
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
- Öröklődés
-
Directory
- Attribútumok
Példák
Az alábbi példa bemutatja, hogyan kérdezheti le az összes szövegfájlt egy könyvtárból, és hogyan helyezheti át őket egy új könyvtárba. A fájlok áthelyezése után már nem léteznek az eredeti könyvtárban.
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
Az alábbi példa bemutatja, hogyan lehet a EnumerateFiles metódussal lekérni egy szövegfájlok gyűjteményét egy könyvtárból, majd a gyűjteményt egy lekérdezésben használni a "Példa" szöveget tartalmazó összes sor megkereséséhez.
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
Az alábbi példa bemutatja, hogyan helyezhet át egy könyvtárat és annak összes fájlját egy új könyvtárba. Az eredeti könyvtár már nem létezik az áthelyezés után.
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
Megjegyzések
Használja az osztályt olyan Directory tipikus műveletekhez, mint a könyvtárak másolása, áthelyezése, átnevezése, létrehozása és törlése.
Könyvtár létrehozásához használja az egyik metódust CreateDirectory .
Könyvtár törléséhez használja az egyik metódust Delete .
Az alkalmazás aktuális könyvtárának lekéréséhez vagy beállításához használja a vagy GetCurrentDirectory a metódustSetCurrentDirectory.
A címtár létrehozásával, elérésével és írásával kapcsolatos információk módosításához DateTime használjon például SetLastAccessTime és SetCreationTime.
Az osztály statikus metódusai Directory biztonsági ellenőrzéseket végeznek az összes metóduson. Ha többször is újra szeretne használni egy objektumot, fontolja meg helyette a megfelelő példánymetódus DirectoryInfo használatát, mert a biztonsági ellenőrzésre nem lesz mindig szükség.
Ha csak egy címtárral kapcsolatos műveletet hajt végre, akkor hatékonyabb lehet statikus Directory metódust használni a megfelelő DirectoryInfo példánymetódus helyett. A legtöbb Directory metódushoz a módosítani kívánt könyvtár elérési útja szükséges.
Note
A sztringparamétert path elfogadó tagokban az elérési útnak jól formázottnak vagy kivételnek kell lennie. Ha például egy elérési út teljes mértékben minősített, de szóközzel kezdődik ("c:\temp"), az elérési út sztringje nincs levágva, ezért az elérési út helytelenül formázottnak minősül, és kivétel keletkezik. Ezenkívül az elérési utak vagy útvonalak kombinációja nem minősíthető teljes mértékben kétszer. A "c:\temp c:\windows" például kivételt is jelez. Győződjön meg arról, hogy az elérési utak megfelelően vannak formázva egy elérésiút-sztringet elfogadó metódusok használatakor. További információ: Path.
Az elérési utat elfogadó tagokban az elérési út egy fájlra vagy könyvtárra hivatkozhat. A kiszolgáló és a megosztás neve teljes elérési útját, relatív elérési útját vagy univerzális elnevezési konvenciós (UNC) elérési útját használhatja. Az alábbiak például elfogadható elérési utak:
A C#-ban a "c:\\MyDir" vagy a "c:\MyDir" a Visual Basic.
"MyDir\\MySubdir" a C#-ban, vagy "MyDir\MySubDir" a Visual Basic.
"\\\MyServer\\MyShare" a C#-ban, vagy "\\MyServer\MyShare" a Visual Basic.
Alapértelmezés szerint az új könyvtárakhoz való teljes olvasási/írási hozzáférés minden felhasználó számára biztosított. Az alkalmazásnak azonban megfelelő biztonsággal kell rendelkeznie a meglévő címtárak eléréséhez.
Ha engedélyeket szeretne igényelni egy könyvtárhoz és annak alkönyvtáraihoz, az elérési út sztringjét a címtárelválasztó karakterrel fejezhesse be. (Például a "C:\Temp\" hozzáférést biztosít a C:\Temp\ és annak összes alkönyvtárához.) Ha csak egy adott könyvtár engedélyeit szeretné igényelni, az elérésiút-sztringet egy ponttal kell befejeznie. (Például a "C:\Temp\." csak a C:\Temp\ számára biztosít hozzáférést, alkönyvtáraihoz nem.)
A paramétert elfogadó tagokban a keresési sztring searchPattern a literális karakterek és a két helyettesítő karakter tetszőleges kombinációja lehet; * és ?. Ez a paraméter nem ismeri fel a reguláris kifejezéseket. További információkért tekintse meg a paramétert EnumerateDirectories(String, String) használó metódust vagy bármely más metódust searchPattern .
A gyakori I/O-feladatok listáját a Gyakori I/O-feladatok című témakörben találja.
Directory és DirectoryInfo nem használhatók Windows Áruházbeli alkalmazásokban. Az Windows Áruházbeli alkalmazások fájljainak és mappáinak eléréséről további információt az Az adatok és fájlok elérése (Windows Áruházbeli alkalmazások) című témakörben talál.
Metódusok
| Name | Description |
|---|---|
| CreateDirectory(String, DirectorySecurity) |
Létrehozza a megadott elérési út összes könyvtárát, kivéve, ha már léteznek, és alkalmazza a megadott Windows biztonságot. |
| CreateDirectory(String, UnixFileMode) |
A megadott elérési út összes könyvtárát és alkönyvtárát létrehozza a megadott engedélyekkel, kivéve, ha már léteznek. |
| CreateDirectory(String) |
A megadott elérési úton létrehozza az összes könyvtárat és alkönyvtárat, kivéve, ha már léteznek. |
| CreateSymbolicLink(String, String) |
Létrehoz egy szimbolikus könyvtárhivatkozást, amelyre |
| CreateTempSubdirectory(String) |
Létrehoz egy egyedileg elnevezett, üres könyvtárat az aktuális felhasználó ideiglenes könyvtárában. |
| Delete(String, Boolean) |
Törli a megadott könyvtárat, és ha van ilyen, a könyvtárban lévő alkönyvtárakat és fájlokat. |
| Delete(String) |
Egy üres könyvtár törlése egy megadott elérési útból. |
| EnumerateDirectories(String, String, EnumerationOptions) |
A címtár teljes neveinek számbavételes gyűjteményét adja vissza, amelyek megfelelnek egy adott elérési út keresési mintájának, és opcionálisan alkönyvtárakban keresnek. |
| EnumerateDirectories(String, String, SearchOption) |
A címtár teljes neveinek számbavételét adja vissza, amelyek megfelelnek egy adott elérési út keresési mintájának, és opcionálisan alkönyvtárakban keresnek. |
| EnumerateDirectories(String, String) |
A címtár teljes neveinek számbavételét adja vissza, amelyek megfelelnek egy adott elérési út keresési mintájának. |
| EnumerateDirectories(String) |
A címtár teljes neveinek számbavételes gyűjteményét adja vissza egy megadott elérési úton. |
| EnumerateFiles(String, String, EnumerationOptions) |
A megadott elérési út keresési mintájának és számbavételi beállításainak megfelelő teljes fájlnevek számbavételi gyűjteményét adja vissza, és opcionálisan alkönyvtárakban keres. |
| EnumerateFiles(String, String, SearchOption) |
A megadott elérési út keresési mintájának megfelelő teljes fájlnevek számbavételét adja vissza, és opcionálisan alkönyvtárakban keres. |
| EnumerateFiles(String, String) |
A megadott elérési út keresési mintájának megfelelő teljes fájlnevek számbavételét adja vissza. |
| EnumerateFiles(String) |
Egy megadott elérési út teljes fájlneveinek számbavételét adja vissza. |
| EnumerateFileSystemEntries(String, String, EnumerationOptions) |
A megadott elérési út keresési mintájának és számbavételi beállításainak megfelelő fájlnevek és címtárnevek számbavételi gyűjteményét adja vissza. |
| EnumerateFileSystemEntries(String, String, SearchOption) |
Egy megadott elérési út keresési mintájának megfelelő fájlnevek és könyvtárnevek számbavételét adja vissza, és opcionálisan alkönyvtárakban keres. |
| EnumerateFileSystemEntries(String, String) |
A megadott elérési út keresési mintájának megfelelő fájlnevek és címtárnevek számbavételét adja vissza. |
| EnumerateFileSystemEntries(String) |
Egy megadott elérési út fájlneveit és könyvtárneveit tartalmazó enumeráló gyűjteményt ad vissza. |
| Exists(String) |
Meghatározza, hogy a megadott elérési út egy meglévő könyvtárra hivatkozik-e a lemezen. |
| GetAccessControl(String, AccessControlSections) |
Lekéri azt DirectorySecurity az objektumot, amely egy adott könyvtár megadott típusú hozzáférés-vezérlési lista (ACL) bejegyzéseit foglalja magában. |
| GetAccessControl(String) |
Lekéri azt DirectorySecurity az objektumot, amely egy adott könyvtár hozzáférés-vezérlési lista (ACL) bejegyzéseit foglalja magában. |
| GetCreationTime(String) |
Lekéri a címtár létrehozásának dátumát és időpontját. |
| GetCreationTimeUtc(String) |
Lekéri egy könyvtár létrehozási dátumát és időpontját utc-formátumban. |
| GetCurrentDirectory() |
Lekéri az alkalmazás aktuális munkakönyvtárát. |
| GetDirectories(String, String, EnumerationOptions) |
A megadott keresési mintával és enumerálási beállításokkal egyező alkönyvtárak (köztük azok elérési útjai) nevét adja vissza. |
| GetDirectories(String, String, SearchOption) |
Visszaadja azoknak az alkönyvtáraknak a nevét (beleértve az elérési útjukat is), amelyek megfelelnek a megadott keresési mintának a megadott könyvtárban, és opcionálisan az alkönyvtárakban keresnek. |
| GetDirectories(String, String) |
Visszaadja azoknak az alkönyvtáraknak a nevét (beleértve az elérési útjukat is), amelyek megfelelnek a megadott könyvtárban megadott keresési mintának. |
| GetDirectories(String) |
A megadott könyvtárban lévő alkönyvtárak nevét adja vissza (az elérési útjukkal együtt). |
| GetDirectoryRoot(String) |
A megadott elérési út kötetadatait, gyökéradatait vagy mindkettőt adja vissza. |
| GetFiles(String, String, EnumerationOptions) |
A megadott keresési mintának és enumerálási beállításoknak megfelelő fájlok nevét adja vissza (az elérési útjukkal együtt). |
| GetFiles(String, String, SearchOption) |
Visszaadja azoknak a fájloknak a nevét (beleértve az elérési útjukat is), amelyek megfelelnek a megadott keresési mintának a megadott könyvtárban, és egy értéket használnak annak meghatározásához, hogy az alkönyvtárakban keresnek-e. |
| GetFiles(String, String) |
Visszaadja azoknak a fájloknak a nevét (beleértve az elérési útjukat is), amelyek megfelelnek a megadott könyvtárban megadott keresési mintának. |
| GetFiles(String) |
A megadott könyvtárban lévő fájlok nevét adja vissza (az elérési útjukkal együtt). |
| GetFileSystemEntries(String, String, EnumerationOptions) |
A megadott elérési út keresési mintájának és számbavételi beállításainak megfelelő fájlneveket és könyvtárneveket tartalmazó tömböt ad vissza. |
| GetFileSystemEntries(String, String, SearchOption) |
Visszaadja az összes olyan fájlnevet és könyvtárnevet tartalmazó tömböt, amely megfelel egy adott elérési út keresési mintájának, és opcionálisan az alkönyvtárakban keres. |
| GetFileSystemEntries(String, String) |
Egy megadott elérési út keresési mintájának megfelelő fájlneveket és könyvtárneveket tartalmazó tömböt ad vissza. |
| GetFileSystemEntries(String) |
Egy megadott elérési út összes fájljának és alkönyvtárának nevét adja vissza. |
| GetLastAccessTime(String) |
A megadott fájl vagy könyvtár legutóbbi elérésének dátumát és időpontját adja vissza. |
| GetLastAccessTimeUtc(String) |
A megadott fájl vagy könyvtár legutóbbi elérésének dátumát és időpontját adja vissza utc formátumban. |
| GetLastWriteTime(String) |
A megadott fájl vagy könyvtár utolsó írási dátumát és időpontját adja vissza. |
| GetLastWriteTimeUtc(String) |
Azt a dátumot és időt adja vissza utc(utc) formátumban, amelybe a megadott fájlt vagy könyvtárat utoljára írták. |
| GetLogicalDrives() |
Lekéri a számítógép logikai meghajtóinak nevét. |
| GetParent(String) |
Lekéri a megadott elérési út szülőkönyvtárát, beleértve az abszolút és a relatív elérési utakat is. |
| Move(String, String) |
Áthelyez egy fájlt vagy egy könyvtárat és annak tartalmát egy új helyre. |
| ResolveLinkTarget(String, Boolean) |
Lekéri a megadott címtárhivatkozás célját. |
| SetAccessControl(String, DirectorySecurity) |
Az objektum által DirectorySecurity leírt hozzáférés-vezérlési lista (ACL) bejegyzéseit alkalmazza a megadott könyvtárra. |
| SetCreationTime(String, DateTime) |
Beállítja a megadott fájl vagy könyvtár létrehozási dátumát és időpontját. |
| SetCreationTimeUtc(String, DateTime) |
A megadott fájlhoz vagy könyvtárhoz beállított létrehozási dátumot és időpontot (UTC) állítja be koordinált univerzális idő (UTC) formátumban. |
| SetCurrentDirectory(String) |
Az alkalmazás aktuális munkakönyvtárát a megadott könyvtárra állítja. |
| SetLastAccessTime(String, DateTime) |
A megadott fájl vagy könyvtár legutóbbi elérésének dátumát és időpontját adja meg. |
| SetLastAccessTimeUtc(String, DateTime) |
A megadott fájl vagy könyvtár legutóbbi elérésének dátumát és időpontját állítja be UTC formátumban. |
| SetLastWriteTime(String, DateTime) |
A címtár utolsó írási dátumát és időpontját adja meg. |
| SetLastWriteTimeUtc(String, DateTime) |
Azt a dátumot és időt állítja be egyezményes világidő (UTC) formátumban, amelybe a címtárat utoljára írták. |