DirectoryInfo-Klasse
Macht Instanzmethoden zum Erstellen, Verschieben und Auflisten in Verzeichnissen und Unterverzeichnissen verfügbar. Die Klasse kann nicht geerbt werden.
Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
'Usage
Dim instance As DirectoryInfo
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class DirectoryInfo : FileSystemInfo
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class DirectoryInfo sealed : public FileSystemInfo
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public final class DirectoryInfo extends FileSystemInfo
SerializableAttribute
ComVisibleAttribute(true)
public final class DirectoryInfo extends FileSystemInfo
Hinweise
Verwenden Sie die DirectoryInfo-Klasse für typische Operationen, z. B. das Kopieren, Verschieben, Umbenennen, Erstellen und Löschen von Dateien.
Wenn Sie ein Objekt mehrmals wiederverwenden, verwenden Sie statt der entsprechenden statischen Methoden der Directory-Klasse die Instanzmethode von DirectoryInfo, da eine Sicherheitsüberprüfung nicht immer erforderlich ist.
Hinweis
Bei Membern, die einen Pfad als Eingabezeichenfolge akzeptieren, muss dieser Pfad wohlgeformt sein. Andernfalls wird eine Ausnahme ausgelöst. Wenn beispielsweise ein Pfad vollqualifiziert ist, aber mit einem Leerzeichen beginnt, wird der Pfad in Methoden der Klasse nicht gekürzt. Daher ist der Pad falsch formatiert, und es wird eine Ausnahme ausgelöst. Ebenso kann ein Pfad oder eine Kombination von Pfaden nicht zweimal vollqualifiziert werden. Auch "c:\temp c:\windows" löst beispielsweise in den meisten Fällen eine Ausnahme aus. Bei der Verwendung von Methoden, die eine Pfadzeichenfolge akzeptieren, müssen Sie sicherstellen, dass die Pfade wohlgeformt sind.
Bei Membern, die einen Pfad akzeptieren, kann der Pfad auf eine Datei oder nur auf ein Verzeichnis verweisen. Der angegebene Pfad kann auch auf einen relativen Pfad oder auf einen UNC-Pfad (Universal Naming Convention) für einen Server- und Freigabenamen verweisen. Beispielsweise sind alle folgenden Pfade zulässig:
"c:\\MyDir\\MyFile.txt" in C# oder "c:\MyDir\MyFile.txt" in Visual Basic.
"c:\\MyDir" in C# oder "c:\MyDir" in Visual Basic.
"MyDir\\MySubdir" in C# oder "MyDir\MySubDir" in Visual Basic.
"\\\\MyServer\\MyShare" in C# oder "\\MyServer\MyShare" in Visual Basic.
Standardmäßig wird allen Benutzern voller Lese- und Schreibzugriff für alle neuen Verzeichnisse gewährt.
In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.
Aufgabe |
Beispiel in diesem Thema |
---|---|
Erstellen einer Textdatei. |
|
In eine Textdatei schreiben. |
|
Aus einer Textdatei lesen. |
|
Umbenennen oder Verschieben eines Verzeichnisses. |
|
Löschen eines Verzeichnisses. |
|
Erstellen eines Verzeichnisses. |
|
Erstellen eines Unterverzeichnisses. |
|
Anzeigen der Dateien in einem Verzeichnis. |
|
Anzeigen der Unterverzeichnisse in einem Verzeichnis. |
|
Anzeigen aller Dateien und Unterverzeichnisse in einem Verzeichnis. |
|
Ermitteln der Größe eines Verzeichnisses. |
Directory |
Bestimmen, ob eine Datei vorhanden ist. |
|
Sortieren von Dateien in einem Verzeichnis nach Größe. |
GetFileSystemInfos |
Bestimmen, ob ein Verzeichnis vorhanden ist. |
Hinweis zu Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows CE: Da Dateisysteme für Geräte auf verschiedene Weise verwendet werden, unterstützt .NET Compact Framework das Abrufen und Festlegen von Verzeichnisattributen nicht.
Beispiel
Das folgende Beispiel veranschaulicht einige der wichtigsten Member der DirectoryInfo-Klasse.
Imports System
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
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 {}
}
}
using namespace System;
using namespace System::IO;
int main()
{
// Specify the directories you want to manipulate.
DirectoryInfo^ di = gcnew 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 0;
}
// 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 );
}
}
import System.*;
import System.IO.*;
class Test
{
public static void main(String[] args)
{
// Specify the directories you want to manipulate.
DirectoryInfo di = new DirectoryInfo("c:\\MyDir");
try {
// Determine whether the directory exists.
if (di.get_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 (System.Exception e) {
Console.WriteLine("The process failed: {0}", e.ToString());
}
finally {
}
} //main
} //Test
Im folgenden Beispiel wird veranschaulicht, wie ein Verzeichnis und sein Inhalt kopiert werden.
Vererbungshierarchie
System.Object
System.MarshalByRefObject
System.IO.FileSystemInfo
System.IO.DirectoryInfo
Threadsicherheit
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
DirectoryInfo-Member
System.IO-Namespace
File
Attributes
Directory-Klasse
Path
Weitere Ressourcen
Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei
Grundlegende Datei-E/A
Gewusst wie: Lesen und Schreiben einer neu erstellten Datendatei