(0) exportieren Drucken
Alle erweitern

DirectoryInfo-Klasse

Aktualisiert: November 2007

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)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class DirectoryInfo : FileSystemInfo
/** @attribute SerializableAttribute */ 
/** @attribute ComVisibleAttribute(true) */
public final class DirectoryInfo extends FileSystemInfo
public final class DirectoryInfo extends FileSystemInfo

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.

8s2fzb02.alert_note(de-de,VS.90).gifHinweis:

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.

Eine Liste häufiger E/A-Aufgaben finden Sie unter Allgemeine E/A-Aufgaben.

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.

Das folgende Beispiel veranschaulicht einige der wichtigsten Member der DirectoryInfo-Klasse.

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 {}
    }
}


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.

using System;
using System.IO;

class CopyDir
{
    public static void Copy(string sourceDirectory, string targetDirectory)
    {
        DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
        DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);

        CopyAll(diSource, diTarget);
    }

    public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
    {
        // Check if the target directory exists, if not, create it.
        if (Directory.Exists(target.FullName) == false)
        {
            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";

        Copy(sourceDirectory, targetDirectory);
    }

    // Output will vary based on the contents of the source directory.
}


Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC, Xbox 360

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 3.5, 2.0, 1.0

XNA Framework

Unterstützt in: 2.0, 1.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft