Directory.GetParent(String) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Hem mutlak hem de göreli yollar dahil olmak üzere belirtilen yolun üst dizinini alır.
public:
static System::IO::DirectoryInfo ^ GetParent(System::String ^ path);
public static System.IO.DirectoryInfo GetParent (string path);
public static System.IO.DirectoryInfo? GetParent (string path);
static member GetParent : string -> System.IO.DirectoryInfo
Public Shared Function GetParent (path As String) As DirectoryInfo
Parametreler
- path
- String
Üst dizinin alındığı yol.
Döndürülenler
Bir UNC sunucusunun veya null
paylaşım adının kökü de dahil olmak üzere, üst dizin veya kök dizin ise path
.
Özel durumlar
tarafından path
belirtilen dizin salt okunur.
Çağıranın gerekli izni yok.
2.1'den eski .NET Framework ve .NET Core sürümleri: path
sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. yöntemiyle GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.
path
, null
değeridir.
Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor. Daha fazla bilgi için konuya bakın PathTooLongException .
Belirtilen yol bulunamadı.
path
geçersiz biçimde.
Yalnızca .NET Framework: Çağıranın gerekli izinleri yok.
Örnekler
Aşağıdaki örnekte, kullanıcı tarafından belirtilen "path" konumunun üst dizinini almak için yönteminin nasıl kullanılacağı GetParent gösterilmektedir. Yöntemi tarafından GetParent döndürülen değer konsola yazdırılır. Örnek, bu yöntemde ortak olan tüm hataları yakalayacak şekilde yapılandırılmıştır.
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;
}
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.");
}
}
}
}
open System
open System.IO
open System.Security
let printFileSystemEntries path =
try
// Obtain the file system entries in the directory path.
let directoryEntries = Directory.GetFileSystemEntries path
for str in directoryEntries do
printfn $"{str}"
with
| :? ArgumentNullException ->
printfn "Path is a null reference."
| :? SecurityException ->
printfn $"The caller does not have the required permission."
| :? ArgumentException ->
printfn $"Path is an empty string, contains only white spaces, or contains invalid characters."
| :? DirectoryNotFoundException ->
printfn $"The path encapsulated in the Directory object does not exist."
let printFileSystemEntriesPattern path pattern =
try
// Obtain the file system entries in the directory
// path that match the pattern.
let directoryEntries = Directory.GetFileSystemEntries(path, pattern)
for str in directoryEntries do
printfn $"{str}"
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? SecurityException -> printfn "The caller does not have the required permission."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
| :? DirectoryNotFoundException -> printfn "The path encapsulated in the Directory object does not exist."
// Print out all logical drives on the system.
let getLogicalDrives () =
try
let drives = Directory.GetLogicalDrives()
for str in drives do
printfn $"{str}"
with
| :? IOException -> printfn "An I/O error occurs."
| :? SecurityException -> printfn "The caller does not have the required permission."
let getParent path =
try
let directoryInfo = Directory.GetParent path
printfn $"{directoryInfo.FullName}"
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
let move sourcePath destinationPath =
try
Directory.Move(sourcePath, destinationPath)
printfn "The directory move is complete."
with
| :? ArgumentNullException -> printfn "Path is a null reference."
| :? SecurityException -> printfn "The caller does not have the required permission."
| :? ArgumentException -> printfn "Path is an empty string, contains only white spaces, or contains invalid characters."
| :? IOException -> printfn "An attempt was made to move a directory to a different volume, or destDirName already exists."
let path = Directory.GetCurrentDirectory()
let filter = "*.exe"
printFileSystemEntries path
printFileSystemEntriesPattern path filter
getLogicalDrives ()
getParent path
move "C:\\proof" "C:\\Temp"
Option Explicit On
Option Strict On
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
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
Açıklamalar
path
parametresi göreli veya mutlak yol bilgilerini belirtebilir. Göreli yol bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .
Dizini almadan önce parametrenin sonundan path
sondaki boşluklar kaldırılır.
Bu yöntem tarafından döndürülen dize, yolundaki tüm karakterlerden oluşur, ancak son DirectorySeparatorChar veya AltDirectorySeparatorChardahil değildir. Örneğin, "C:\Directory\SubDirectory\test.txt" yolunu "C:\Directory\SubDirectory" GetParent döndürür. "C:\Directory\SubDirectory" geçirilmesi "C:\Directory" değerini döndürür. Ancak, "C:\Directory\SubDirectory\" geçirildiğinde , bitiş dizini ayırıcısı "SubDirectory" sonrasında olduğundan "C:\Directory\SubDirectory" değerini döndürür.
parametresinin path
büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemine karşılık gelir. Örneğin, NTFS'de (varsayılan Windows dosya sistemi) büyük/küçük harfe duyarlı değildir ve Linux dosya sistemlerinde büyük/küçük harfe duyarlıdır.
Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.