Directory.GetParent 메서드
지정된 경로의 절대 경로와 상대 경로를 모두 포함한 부모 디렉터리를 검색합니다.
네임스페이스: System.IO
어셈블리: mscorlib(mscorlib.dll)
구문
‘선언
Public Shared Function GetParent ( _
path As String _
) As DirectoryInfo
‘사용 방법
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
매개 변수
- path
부모 디렉터리를 검색할 경로입니다.
반환 값
부모 디렉터리이거나 path가 UNC 서버 또는 공유 이름의 루트를 포함한 루트 디렉터리일 경우 Null 참조(Visual Basic의 경우 Nothing)입니다.
예외
예외 형식 | 조건 |
---|---|
path로 지정된 디렉터리가 읽기 전용일 경우 |
|
호출자에게 필요한 권한이 없는 경우 |
|
path가 길이가 0인 문자열이거나, 공백만 포함하거나 또는 InvalidPathChars로 정의된 하나 이상의 잘못된 문자를 포함하는 경우 |
|
path가 Null 참조(Visual Basic의 경우 Nothing)인 경우 |
|
지정된 경로 또는 파일 이름이 시스템에 정의된 최대 길이를 초과하는 경우 예를 들어, Windows 기반 플랫폼에서는 경로에 248자 미만의 문자를 사용해야 하며 파일 이름에는 260자 미만의 문자를 사용해야 합니다. |
|
지정된 경로를 찾을 수 없는 경우 |
설명
path 매개 변수에는 상대 경로나 절대 경로 정보를 지정할 수 있습니다. 상대 경로 정보는 현재 작업 디렉터리에 상대적으로 해석됩니다. 현재 작업 디렉터리를 얻는 방법에 대해서는 GetCurrentDirectory를 참조하십시오.
path 매개 변수는 대/소문자를 구분하지 않습니다.
다음 표에서는 일반적인 예 또는 관련된 I/O 작업의 예를 보여 줍니다.
수행 작업 |
참조 항목 |
---|---|
디렉터리 이름을 바꾸거나 이동합니다. |
|
디렉터리를 삭제합니다. |
|
디렉터리를 만듭니다. |
|
하위 디렉터리를 만듭니다. |
|
디렉터리의 파일을 참조하십시오. |
|
디렉터리의 하위 디렉터리를 참조하십시오. |
|
디렉터리의 전체 하위 디렉터리에 있는 모든 파일을 참조하십시오. |
|
디렉터리의 크기를 찾습니다. |
|
파일이 있는지 여부를 확인합니다. |
|
디렉터리의 파일을 크기순으로 정렬합니다. |
GetFileSystemInfos |
디렉터리가 있는지 여부를 확인합니다. |
예제
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 보안
- FileIOPermission 파일 또는 디렉터리에서 읽는 데 필요한 권한입니다. 연관된 열거형: FileIOPermissionAccess.Read
플랫폼
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에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
2.0, 1.1, 1.0에서 지원
참고 항목
참조
Directory 클래스
Directory 멤버
System.IO 네임스페이스
DirectoryInfo