Freigeben über


Directory.GetParent-Methode

Ruft das übergeordnete Verzeichnis des angegebenen Pfads ab, sowohl für absolute als auch für relative Pfade.

Namespace: System.IO
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function GetParent ( _
    path As String _
) As DirectoryInfo
'Usage
Dim path As String
Dim returnValue As DirectoryInfo

returnValue = Directory.GetParent(path)
public static DirectoryInfo GetParent (
    string path
)
public:
static DirectoryInfo^ GetParent (
    String^ path
)
public static DirectoryInfo GetParent (
    String path
)
public static function GetParent (
    path : String
) : DirectoryInfo

Parameter

  • path
    Der Pfad, dessen übergeordnetes Verzeichnis abgerufen werden soll.

Rückgabewert

Das übergeordnete Verzeichnis oder NULL (Nothing in Visual Basic), wenn path das Stammverzeichnis ist, einschließlich des Stammverzeichnisses eines UNC-Server- oder Freigabenamens.

Ausnahmen

Ausnahmetyp Bedingung

IOException

Das durch path angegebene Verzeichnis ist schreibgeschützt.

UnauthorizedAccessException

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

ArgumentException

path ist eine Zeichenfolge der Länge 0 (null), besteht nur aus Leerraum oder enthält ein oder mehrere durch InvalidPathChars definierte ungültige Zeichen.

ArgumentNullException

path ist NULL (Nothing in Visual Basic).

PathTooLongException

Der angegebene Pfad und/oder der Dateiname überschreiten die vom System vorgegebene Höchstlänge. Beispielsweise dürfen auf Windows-Plattformen Pfade nicht länger als 247 Zeichen und Dateinamen nicht länger als 259 Zeichen sein.

DirectoryNotFoundException

Der angegebene Pfad wurde nicht gefunden.

Hinweise

Mit dem path-Parameter dürfen relative oder absolute Pfadinformationen angegeben werden. Relative Pfadinformationen werden relativ zum aktuellen Arbeitsverzeichnis interpretiert. Informationen zum Abrufen des aktuellen Arbeitsverzeichnisses finden Sie unter GetCurrentDirectory.

Beim path-Parameter wird nicht zwischen Groß- und Kleinschreibung unterschieden.

In der folgenden Tabelle sind Beispiele für andere typische oder verwandte E/A-Aufgaben aufgeführt.

Aufgabe

Beispiel in diesem Thema

Umbenennen oder Verschieben eines Verzeichnisses.

Directory.Move

DirectoryInfo.MoveTo

Löschen eines Verzeichnisses.

Directory.Delete

DirectoryInfo.Delete

Erstellen eines Verzeichnisses.

CreateDirectory

Directory

Erstellen eines Unterverzeichnisses.

CreateSubdirectory

Anzeigen der Dateien in einem Verzeichnis.

Name

Anzeigen der Unterverzeichnisse in einem Verzeichnis.

GetDirectories

GetDirectories

Anzeigen aller Dateien in allen Unterverzeichnissen eines Verzeichnisses.

GetFileSystemInfos

Ermitteln der Größe eines Verzeichnisses.

Directory

Bestimmen, ob eine Datei vorhanden ist.

Exists

Sortieren von Dateien in einem Verzeichnis nach Größe.

GetFileSystemInfos

Bestimmen, ob ein Verzeichnis vorhanden ist.

Exists

Beispiel

Option Explicit On 
Option Strict On

Imports System

Namespace GetFileSystemEntries
    Class Class1
        Overloads Shared Sub Main(ByVal args() As String)
            Dim snippets As New Class1()
            Dim path As String = System.IO.Directory.GetCurrentDirectory()
            Dim filter As String = "*.exe"
            snippets.PrintFileSystemEntries(path)
            snippets.PrintFileSystemEntries(path, filter)
            snippets.GetLogicalDrives()
            snippets.GetParent(path)
            snippets.Move("C:\proof", "C:\Temp")
        End Sub 'Main

        Sub PrintFileSystemEntries(ByVal path As String)
            Try
                ' Obtain the file system entries in the directory path.
                Dim directoryEntries As String()
                directoryEntries = System.IO.Directory.GetFileSystemEntries(path)
                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub
        Sub PrintFileSystemEntries(ByVal path As String, _
                                   ByVal pattern As String)
            Try
                ' Obtain the file system entries in the directory
                ' path that match the pattern.
                Dim directoryEntries As String()
                directoryEntries = _
                   System.IO.Directory.GetFileSystemEntries(path, pattern)

                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub

        ' Print out all logical drives on the system.
        Sub GetLogicalDrives()
            Try
                Dim drives As String()
                drives = System.IO.Directory.GetLogicalDrives()

                Dim str As String
                For Each str In drives
                    System.Console.WriteLine(str)
                Next str
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An I/O error occurs.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            End Try
        End Sub
        Sub GetParent(ByVal path As String)
            Try
                Dim directoryInfo As System.IO.DirectoryInfo
                directoryInfo = System.IO.Directory.GetParent(path)
                System.Console.WriteLine(directoryInfo.FullName)
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                     "contains only white spaces, or " + _
                                     "contains invalid characters.")
            End Try
        End Sub
        Sub Move(ByVal sourcePath As String, ByVal destinationPath As String)
            Try
                System.IO.Directory.Move(sourcePath, destinationPath)
                System.Console.WriteLine("The directory move is complete.")
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An attempt was made to move a " + _
                                        "directory to a different " + _
                                        "volume, or destDirName " + _
                                        "already exists.")
            End Try
        End Sub
    End Class
End Namespace
using System;

namespace GetFileSystemEntries
{
    class Class1 
    {
        static void Main(string[] args) 
        {
            Class1 snippets = new Class1();

            string path = System.IO.Directory.GetCurrentDirectory();
            string filter = "*.exe";

            snippets.PrintFileSystemEntries(path);
            snippets.PrintFileSystemEntries(path, filter);      
            snippets.GetLogicalDrives();
            snippets.GetParent(path);
            snippets.Move("C:\\proof", "C:\\Temp");
        }

        
        void PrintFileSystemEntries(string path) 
        {
            
            try 
            {
                // Obtain the file system entries in the directory path.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path); 

                foreach (string str in directoryEntries) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException) 
            {
                System.Console.WriteLine("The path encapsulated in the " + 
                    "Directory object does not exist.");
            }
        }
        void PrintFileSystemEntries(string path, string pattern) 
        {
            try 
            {
                // Obtain the file system entries in the directory
                // path that match the pattern.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path, pattern); 

                foreach (string str in directoryEntries) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException) 
            {
                System.Console.WriteLine("The path encapsulated in the " + 
                    "Directory object does not exist.");
            }
        }

        // Print out all logical drives on the system.
        void GetLogicalDrives() 
        {
            try 
            {
                string[] drives = System.IO.Directory.GetLogicalDrives();

                foreach (string str in drives) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (System.IO.IOException) 
            {
                System.Console.WriteLine("An I/O error occurs.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
        }
        void GetParent(string path) 
        {
            try 
            {
                System.IO.DirectoryInfo directoryInfo =
                    System.IO.Directory.GetParent(path);

                System.Console.WriteLine(directoryInfo.FullName);
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, or " +
                    "contains invalid characters.");
            }
        }
        void Move(string sourcePath, string destinationPath) 
        {
            try 
            {
                System.IO.Directory.Move(sourcePath, destinationPath);
                System.Console.WriteLine("The directory move is complete.");
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters."); 
            }
            catch (System.IO.IOException) 
            {
                System.Console.WriteLine("An attempt was made to move a " +
                    "directory to a different " +
                    "volume, or destDirName " +
                    "already exists."); 
            }
        }
    }
}
using namespace System;
class Class1
{
public:
   void PrintFileSystemEntries( String^ path )
   {
      try
      {
         
         // Obtain the file system entries in the directory path.
         array<String^>^directoryEntries = System::IO::Directory::GetFileSystemEntries( path );
         for ( int i = 0; i < directoryEntries->Length; i++ )
         {
            System::Console::WriteLine( directoryEntries[ i ] );

         }
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::DirectoryNotFoundException^ ) 
      {
         System::Console::WriteLine(  "The path encapsulated in the \HelloServer'                  Directory object does not exist." );
      }

   }

   void PrintFileSystemEntries( String^ path, String^ pattern )
   {
      try
      {
         
         // Obtain the file system entries in the directory
         // path that match the pattern.
         array<String^>^directoryEntries = System::IO::Directory::GetFileSystemEntries( path, pattern );
         for ( int i = 0; i < directoryEntries->Length; i++ )
         {
            System::Console::WriteLine( directoryEntries[ i ] );

         }
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::DirectoryNotFoundException^ ) 
      {
         System::Console::WriteLine(  "The path encapsulated in the \HelloServer'                  Directory object does not exist." );
      }

   }


   // Print out all logical drives on the system.
   void GetLogicalDrives()
   {
      try
      {
         array<String^>^drives = System::IO::Directory::GetLogicalDrives();
         for ( int i = 0; i < drives->Length; i++ )
         {
            System::Console::WriteLine( drives[ i ] );

         }
      }
      catch ( System::IO::IOException^ ) 
      {
         System::Console::WriteLine(  "An I/O error occurs." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }

   }

   void GetParent( String^ path )
   {
      try
      {
         System::IO::DirectoryInfo^ directoryInfo = System::IO::Directory::GetParent( path );
         System::Console::WriteLine( directoryInfo->FullName );
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, or \HelloServer'                  contains invalid characters." );
      }

   }

   void Move( String^ sourcePath, String^ destinationPath )
   {
      try
      {
         System::IO::Directory::Move( sourcePath, destinationPath );
         System::Console::WriteLine(  "The directory move is complete." );
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::IOException^ ) 
      {
         System::Console::WriteLine(  "An attempt was made to move a \HelloServer'                  directory to a different \HelloServer'                  volume, or destDirName \HelloServer'                  already exists." );
      }

   }

};

int main()
{
   Class1 * snippets = new Class1;
   String^ path = System::IO::Directory::GetCurrentDirectory();
   String^ filter =  "*.exe";
   snippets->PrintFileSystemEntries( path );
   snippets->PrintFileSystemEntries( path, filter );
   snippets->GetLogicalDrives();
   snippets->GetParent( path );
   snippets->Move(  "C:\\proof",  "C:\\Temp" );
   return 0;
}
package GetFileSystemEntries ;
import System.*;

class Class1
{
    public static void main(String[] args)
    {
        Class1 snippets = new Class1();

        String path = System.IO.Directory.GetCurrentDirectory();
        String filter = "*.exe";

        snippets.PrintFileSystemEntries(path);
        snippets.PrintFileSystemEntries(path, filter);
        snippets.GetLogicalDrives();
        snippets.GetParent(path);
        snippets.Move("C:\\proof", "C:\\Temp");
    } //main

    void PrintFileSystemEntries(String path)
    {
        try {
            // Obtain the file system entries in the directory path.
            String directoryEntries[] = 
                System.IO.Directory.GetFileSystemEntries(path);

            for (int iCtr = 0; iCtr < directoryEntries.length; iCtr++) {
                String str = directoryEntries[iCtr];
                System.Console.WriteLine(str);
            }
        }
        catch (ArgumentNullException exp) {
            System.Console.WriteLine("Path is a null reference.");
        }
        catch (System.Security.SecurityException exp) {
            System.Console.WriteLine(("The caller does not have the "
                + "required permission."));
        }
        catch (ArgumentException exp) {
            System.Console.WriteLine(("Path is an empty string, "
                + "contains only white spaces, "
                + "or contains invalid characters."));
        }
        catch (System.IO.DirectoryNotFoundException exp) {
            System.Console.WriteLine(("The path encapsulated in the "
                + "Directory object does not exist."));
        }
    } //PrintFileSystemEntries

    void PrintFileSystemEntries(String path, String pattern)
    {
        try {
            // Obtain the file system entries in the directory
            // path that match the pattern.
            String directoryEntries[] = 
                System.IO.Directory.GetFileSystemEntries(path, pattern);

            for (int iCtr = 0; iCtr < directoryEntries.length; iCtr++) {
                String str = directoryEntries[iCtr];
                System.Console.WriteLine(str);
            }
        }
        catch (ArgumentNullException exp) {
            System.Console.WriteLine("Path is a null reference.");
        }
        catch (System.Security.SecurityException exp) {
            System.Console.WriteLine(("The caller does not have the "
                + "required permission."));
        }
        catch (ArgumentException exp) {
            System.Console.WriteLine(("Path is an empty string, "
                + "contains only white spaces, "
                + "or contains invalid characters."));
        }
        catch (System.IO.DirectoryNotFoundException exp) {
            System.Console.WriteLine(("The path encapsulated in the "
                + "Directory object does not exist."));
        }
    } //PrintFileSystemEntries

    // Print out all logical drives on the system.
    void GetLogicalDrives()
    {
        try {
            String drives[] = System.IO.Directory.GetLogicalDrives();

            for (int iCtr = 0; iCtr < drives.length; iCtr++) {
                String str = drives[iCtr];
                System.Console.WriteLine(str);
            }
        }
        catch (System.IO.IOException exp) {
            System.Console.WriteLine("An I/O error occurs.");
        }
        catch (System.Security.SecurityException exp) {
            System.Console.WriteLine(("The caller does not have the "
                + "required permission."));
        }
    } //GetLogicalDrives

    void GetParent(String path)
    {
        try {
            System.IO.DirectoryInfo directoryInfo = 
                System.IO.Directory.GetParent(path);
            System.Console.WriteLine(directoryInfo.get_FullName());
        }
        catch (ArgumentNullException exp) {
            System.Console.WriteLine("Path is a null reference.");
        }
        catch (ArgumentException exp) {
            System.Console.WriteLine(("Path is an empty string, "
                +"contains only white spaces, or contains invalid characters."));
        }
    } //GetParent

    void Move(String sourcePath, String destinationPath)
    {
        try {
            System.IO.Directory.Move(sourcePath, destinationPath);
            System.Console.WriteLine("The directory move is complete.");
        }
        catch (ArgumentNullException exp) {
            System.Console.WriteLine("Path is a null reference.");
        }
        catch (System.Security.SecurityException exp) {
            System.Console.WriteLine(("The caller does not have the "
                + "required permission."));
        }
        catch (ArgumentException exp) {
            System.Console.WriteLine(("Path is an empty string, "
                +"contains only white spaces, or contains invalid characters."));
        }
        catch (System.IO.IOException exp) {
            System.Console.WriteLine(("An attempt was made to move a "
                + "directory to a different "
                + "volume, or destDirName "
                + "already exists."));
        }
    } //Move
} //Class1

.NET Framework-Sicherheit

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, 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

Siehe auch

Referenz

Directory-Klasse
Directory-Member
System.IO-Namespace
DirectoryInfo

Weitere Ressourcen

Datei- und Stream-E/A
Gewusst wie: Lesen aus einer Textdatei
Gewusst wie: Schreiben von Text in eine Datei