DirectoryInfo Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Exponerar instansmetoder för att skapa, flytta och räkna upp via kataloger och underkataloger. Det går inte att ärva den här klassen.
public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
inherit FileSystemInfo
[<System.Serializable>]
type DirectoryInfo = class
inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DirectoryInfo = class
inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
- Arv
- Arv
- Attribut
Exempel
I följande exempel visas några av de viktigaste medlemmarna i DirectoryInfo klassen.
using System;
using System.IO;
class Test
{
public static void Main()
{
// Specify the directories you want to manipulate.
DirectoryInfo di = new DirectoryInfo(@"c:\MyDir");
try
{
// Determine whether the directory exists.
if (di.Exists)
{
// Indicate that the directory already exists.
Console.WriteLine("That path exists already.");
return;
}
// Try to create the directory.
di.Create();
Console.WriteLine("The directory was created successfully.");
// Delete the directory.
di.Delete();
Console.WriteLine("The directory was deleted successfully.");
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
finally {}
}
}
open System.IO
// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"
try
// Determine whether the directory exists.
if di.Exists then
// Indicate that the directory already exists.
printfn "That path exists already."
else
// Try to create the directory.
di.Create()
printfn "The directory was created successfully."
// Delete the directory.
di.Delete()
printfn "The directory was deleted successfully."
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
' Specify the directories you want to manipulate.
Dim di As DirectoryInfo = New DirectoryInfo("c:\MyDir")
Try
' Determine whether the directory exists.
If di.Exists Then
' Indicate that it already exists.
Console.WriteLine("That path exists already.")
Return
End If
' Try to create the directory.
di.Create()
Console.WriteLine("The directory was created successfully.")
' Delete the directory.
di.Delete()
Console.WriteLine("The directory was deleted successfully.")
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
I följande exempel visas hur du kopierar en katalog och dess innehåll.
using System;
using System.IO;
class CopyDir
{
public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
if (source.FullName.ToLower() == target.FullName.ToLower())
{
return;
}
// Check if the target directory exists, if not, create it.
if (!Directory.Exists(target.FullName))
{
Directory.CreateDirectory(target.FullName);
}
// Copy each file into it's new directory.
foreach (FileInfo fi in source.GetFiles())
{
Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
}
// Copy each subdirectory using recursion.
foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
{
DirectoryInfo nextTargetSubDir =
target.CreateSubdirectory(diSourceSubDir.Name);
CopyAll(diSourceSubDir, nextTargetSubDir);
}
}
public static void Main()
{
string sourceDirectory = @"c:\sourceDirectory";
string targetDirectory = @"c:\targetDirectory";
DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
CopyAll(diSource, diTarget);
}
// Output will vary based on the contents of the source directory.
}
open System.IO
let rec copyAll (source: DirectoryInfo) (target: DirectoryInfo) =
if source.FullName.ToLower() <> target.FullName.ToLower() then
// Check if the target directory exists, if not, create it.
if not (Directory.Exists target.FullName) then
Directory.CreateDirectory target.FullName |> ignore
// Copy each file into it's new directory.
for fi in source.GetFiles() do
printfn $@"Copying {target.FullName}\{fi.Name}"
fi.CopyTo(Path.Combine(string target, fi.Name), true) |> ignore
// Copy each subdirectory using recursion.
for diSourceSubDir in source.GetDirectories() do
target.CreateSubdirectory diSourceSubDir.Name
|> copyAll diSourceSubDir
let sourceDirectory = @"c:\sourceDirectory"
let targetDirectory = @"c:\targetDirectory"
let diSource = DirectoryInfo sourceDirectory
let diTarget = DirectoryInfo targetDirectory
copyAll diSource diTarget
// Output will vary based on the contents of the source directory.
Imports System.IO
Class CopyDir
Shared Sub CopyAll(ByVal source As DirectoryInfo, ByVal target As DirectoryInfo)
If (source.FullName.ToLower() = target.FullName.ToLower()) Then
Return
End If
' Check if the target directory exists, if not, create it.
If Directory.Exists(target.FullName) = False Then
Directory.CreateDirectory(target.FullName)
End If
' Copy each file into it's new directory.
For Each fi As FileInfo In source.GetFiles()
Console.WriteLine("Copying {0}\{1}", target.FullName, fi.Name)
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), True)
Next
' Copy each subdirectory using recursion.
For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
CopyAll(diSourceSubDir, nextTargetSubDir)
Next
End Sub
Shared Sub Main()
Dim sourceDirectory As String = "c:\\sourceDirectory"
Dim targetDirectory As String = "c:\\targetDirectory"
Dim diSource As DirectoryInfo = New DirectoryInfo(sourceDirectory)
Dim diTarget As DirectoryInfo = New DirectoryInfo(targetDirectory)
CopyAll(diSource, diTarget)
End Sub
' Output will vary based on the contents of the source directory.
End Class
Kommentarer
DirectoryInfo Använd klassen för vanliga åtgärder som att kopiera, flytta, byta namn, skapa och ta bort kataloger.
Om du ska återanvända ett objekt flera gånger bör du överväga att använda instansmetoden DirectoryInfo i stället för motsvarande statiska metoder för Directory klassen, eftersom en säkerhetskontroll inte alltid är nödvändig.
Anmärkning
I medlemmar som accepterar en sökväg som en indatasträng måste sökvägen vara väl utformad eller så genereras ett undantag. Om en sökväg till exempel är fullständigt kvalificerad men börjar med ett blanksteg, trimmas inte sökvägen i klassens metoder. Därför är sökvägen felaktigt formaterad och ett undantag utlöses. På samma sätt kan en sökväg eller en kombination av sökvägar inte vara fullständigt kvalificerad två gånger. Till exempel skapar "c:\temp c:\windows" också ett undantag i de flesta fall. Se till att sökvägarna är välformulerad när du använder metoder som accepterar en sökvägssträng.
I medlemmar som accepterar en sökväg kan sökvägen referera till en fil eller bara en katalog. Den angivna sökvägen kan också referera till en relativ sökväg eller en UNC-sökväg (Universal Naming Convention) för en server och ett resursnamn. Till exempel är alla följande godkända sökvägar:
"c:\\MyDir\\MyFile.txt" i C#, eller "c:\MyDir\MyFile.txt" i Visual Basic.
"c:\\MyDir" i C#, eller "c:\MyDir" i Visual Basic.
"MyDir\\MySubdir" i C#, eller "MyDir\MySubDir" i Visual Basic.
"\\\\MyServer\\MyShare" i C#, eller "\\MyServer\MyShare" i Visual Basic.
Som standard beviljas fullständig läs-/skrivåtkomst till nya kataloger till alla användare.
En lista över vanliga I/O-uppgifter finns i Vanliga I/O-uppgifter.
Konstruktorer
| Name | Description |
|---|---|
| DirectoryInfo(String) |
Initierar en ny instans av DirectoryInfo klassen på den angivna sökvägen. |
Fält
| Name | Description |
|---|---|
| FullPath |
Representerar den fullständigt kvalificerade sökvägen för katalogen eller filen. (Ärvd från FileSystemInfo) |
| OriginalPath |
Sökvägen som ursprungligen angavs av användaren, oavsett om den är relativ eller absolut. (Ärvd från FileSystemInfo) |
Egenskaper
| Name | Description |
|---|---|
| Attributes |
Hämtar eller anger attributen för den aktuella filen eller katalogen. (Ärvd från FileSystemInfo) |
| CreationTime |
Hämtar eller anger skapandetiden för den aktuella filen eller katalogen. (Ärvd från FileSystemInfo) |
| CreationTimeUtc |
Hämtar eller anger skapandetiden, i samordnad universell tid (UTC), för den aktuella filen eller katalogen. (Ärvd från FileSystemInfo) |
| Exists |
Hämtar ett värde som anger om katalogen finns. |
| Extension |
Hämtar filnamnsdelen, inklusive den inledande punkten |
| FullName |
Hämtar den fullständiga sökvägen till katalogen. |
| FullName |
Hämtar den fullständiga sökvägen till katalogen eller filen. (Ärvd från FileSystemInfo) |
| LastAccessTime |
Hämtar eller anger den tid då den aktuella filen eller katalogen senast användes. (Ärvd från FileSystemInfo) |
| LastAccessTimeUtc |
Hämtar eller anger den tid i samordnad universell tid (UTC) som den aktuella filen eller katalogen senast användes. (Ärvd från FileSystemInfo) |
| LastWriteTime |
Hämtar eller anger den tid då den aktuella filen eller katalogen senast skrevs till. (Ärvd från FileSystemInfo) |
| LastWriteTimeUtc |
Hämtar eller anger tiden, i samordnad universell tid (UTC), när den aktuella filen eller katalogen senast skrevs till. (Ärvd från FileSystemInfo) |
| Name |
Hämtar namnet på den här DirectoryInfo instansen. |
| Parent |
Hämtar den överordnade katalogen för en angiven underkatalog. |
| Root |
Hämtar rotdelen av katalogen. |
Metoder
| Name | Description |
|---|---|
| Create() |
Skapar en katalog. |
| Create(DirectorySecurity) |
Skapar en katalog med hjälp av ett DirectorySecurity objekt. |
| CreateObjRef(Type) |
Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt. (Ärvd från MarshalByRefObject) |
| CreateSubdirectory(String, DirectorySecurity) |
Skapar en underkatalog eller underkataloger på den angivna sökvägen med den angivna säkerheten. Den angivna sökvägen kan vara relativ till den här instansen DirectoryInfo av klassen. |
| CreateSubdirectory(String) |
Skapar en underkatalog eller underkataloger på den angivna sökvägen. Den angivna sökvägen kan vara relativ till den här instansen DirectoryInfo av klassen. |
| Delete() |
Tar bort detta DirectoryInfo om det är tomt. |
| Delete(Boolean) |
Tar bort den här instansen av en DirectoryInfo, som anger om underkataloger och filer ska tas bort. |
| EnumerateDirectories() |
Returnerar en uppräkningsbar samling kataloginformation i den aktuella katalogen. |
| EnumerateDirectories(String, EnumerationOptions) |
Returnerar en uppräkningsbar samling kataloginformation som matchar det angivna sökmönstret och uppräkningsalternativen. |
| EnumerateDirectories(String, SearchOption) |
Returnerar en uppräkningsbar samling kataloginformation som matchar ett angivet sökmönster och sökunderkatalogalternativ. |
| EnumerateDirectories(String) |
Returnerar en uppräkningsbar samling kataloginformation som matchar ett angivet sökmönster. |
| EnumerateFiles() |
Returnerar en uppräkningsbar samling filinformation i den aktuella katalogen. |
| EnumerateFiles(String, EnumerationOptions) |
Returnerar en uppräkningsbar samling filinformation som matchar det angivna sökmönstret och uppräkningsalternativen. |
| EnumerateFiles(String, SearchOption) |
Returnerar en uppräkningsbar samling filinformation som matchar ett angivet sökmönster och sökunderkatalogalternativ. |
| EnumerateFiles(String) |
Returnerar en uppräkningsbar samling filinformation som matchar ett sökmönster. |
| EnumerateFileSystemInfos() |
Returnerar en uppräkningsbar samling filsysteminformation i den aktuella katalogen. |
| EnumerateFileSystemInfos(String, EnumerationOptions) |
Returnerar en uppräkningsbar samling filsysteminformation som matchar det angivna sökmönstret och uppräkningsalternativen. |
| EnumerateFileSystemInfos(String, SearchOption) |
Returnerar en uppräkningsbar samling filsysteminformation som matchar ett angivet sökmönster och sökunderkatalogalternativ. |
| EnumerateFileSystemInfos(String) |
Returnerar en uppräkningsbar samling filsysteminformation som matchar ett angivet sökmönster. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetAccessControl() |
Hämtar ett DirectorySecurity objekt som kapslar in åtkomstkontrollistan (ACL) poster för katalogen som beskrivs av det aktuella DirectoryInfo objektet. |
| GetAccessControl(AccessControlSections) |
Hämtar ett DirectorySecurity objekt som kapslar in den angivna typen av åtkomstkontrollistaposter (ACL) för katalogen som beskrivs av det aktuella DirectoryInfo objektet. |
| GetDirectories() |
Returnerar underkatalogerna för den aktuella katalogen. |
| GetDirectories(String, EnumerationOptions) |
Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar det angivna sökmönstret och uppräkningsalternativen. |
| GetDirectories(String, SearchOption) |
Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar de angivna sökvillkoren och använder ett värde för att avgöra om underkataloger ska sökas igenom. |
| GetDirectories(String) |
Returnerar en matris med kataloger i den aktuella DirectoryInfo som matchar det angivna sökvillkoren. |
| GetFiles() |
Returnerar en fillista från den aktuella katalogen. |
| GetFiles(String, EnumerationOptions) |
Returnerar en fillista från den aktuella katalogen som matchar det angivna sökmönstret och uppräkningsalternativen. |
| GetFiles(String, SearchOption) |
Returnerar en fillista från den aktuella katalogen som matchar det angivna sökmönstret och använder ett värde för att avgöra om underkataloger ska sökas igenom. |
| GetFiles(String) |
Returnerar en fillista från den aktuella katalogen som matchar det angivna sökmönstret. |
| GetFileSystemInfos() |
Returnerar en matris med starkt inskrivna FileSystemInfo poster som representerar alla filer och underkataloger i en katalog. |
| GetFileSystemInfos(String, EnumerationOptions) |
Hämtar en matris med starkt typerade FileSystemInfo objekt som representerar de filer och underkataloger som matchar det angivna sökmönstret och uppräkningsalternativen. |
| GetFileSystemInfos(String, SearchOption) |
Hämtar en matris med FileSystemInfo objekt som representerar de filer och underkataloger som matchar de angivna sökvillkoren. |
| GetFileSystemInfos(String) |
Hämtar en matris med starkt inskrivna FileSystemInfo objekt som representerar de filer och underkataloger som matchar de angivna sökvillkoren. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetLifetimeService() |
Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) |
Anger objektet SerializationInfo med filnamnet och ytterligare undantagsinformation. (Ärvd från FileSystemInfo) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InitializeLifetimeService() |
Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MemberwiseClone(Boolean) |
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet. (Ärvd från MarshalByRefObject) |
| MoveTo(String) |
Flyttar en DirectoryInfo instans och dess innehåll till en ny sökväg. |
| Refresh() |
Uppdaterar objektets tillstånd. (Ärvd från FileSystemInfo) |
| SetAccessControl(DirectorySecurity) |
Tillämpar poster i åtkomstkontrollistan (ACL) som beskrivs av ett DirectorySecurity objekt i katalogen som beskrivs av det aktuella DirectoryInfo objektet. |
| ToString() |
Returnerar den ursprungliga sökvägen som skickades till DirectoryInfo konstruktorn. FullName Använd egenskaperna eller Name för den fullständiga sökvägen eller fil-/katalognamnet i stället för den här metoden. |