DirectoryInfo 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디렉터리 및 하위 디렉터리를 만들고, 이동하고, 열거하는 인스턴스 메서드를 노출합니다. 이 클래스는 상속될 수 없습니다.
public ref class DirectoryInfo sealed : System::IO::FileSystemInfo
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
inherit FileSystemInfo
[<System.Serializable>]
type DirectoryInfo = class
inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DirectoryInfo = class
inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
- 상속
- 상속
- 특성
예제
다음 예제에서는 클래스의 기본 멤버 중 일부를 보여 줍니다DirectoryInfo
.
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 );
}
}
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 {}
}
}
open System.IO
// Specify the directories you want to manipulate.
let di = DirectoryInfo @"c:\MyDir"
try
// Determine whether the directory exists.
if di.Exists then
// Indicate that the directory already exists.
printfn "That path exists already."
else
// Try to create the directory.
di.Create()
printfn "The directory was created successfully."
// Delete the directory.
di.Delete()
printfn "The directory was deleted successfully."
with e ->
printfn $"The process failed: {e}"
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 CopyDir
{
public static void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
if (source.FullName.ToLower() == target.FullName.ToLower())
{
return;
}
// 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";
DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);
DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);
CopyAll(diSource, diTarget);
}
// Output will vary based on the contents of the source directory.
}
open System.IO
let rec copyAll (source: DirectoryInfo) (target: DirectoryInfo) =
if source.FullName.ToLower() <> target.FullName.ToLower() then
// Check if the target directory exists, if not, create it.
if not (Directory.Exists target.FullName) then
Directory.CreateDirectory target.FullName |> ignore
// Copy each file into it's new directory.
for fi in source.GetFiles() do
printfn $@"Copying {target.FullName}\{fi.Name}"
fi.CopyTo(Path.Combine(string target, fi.Name), true) |> ignore
// Copy each subdirectory using recursion.
for diSourceSubDir in source.GetDirectories() do
target.CreateSubdirectory diSourceSubDir.Name
|> copyAll diSourceSubDir
let sourceDirectory = @"c:\sourceDirectory"
let targetDirectory = @"c:\targetDirectory"
let diSource = DirectoryInfo sourceDirectory
let diTarget = DirectoryInfo targetDirectory
copyAll diSource diTarget
// Output will vary based on the contents of the source directory.
Imports System.IO
Class CopyDir
Shared Sub CopyAll(ByVal source As DirectoryInfo, ByVal target As DirectoryInfo)
If (source.FullName.ToLower() = target.FullName.ToLower()) Then
Return
End If
' Check if the target directory exists, if not, create it.
If Directory.Exists(target.FullName) = False Then
Directory.CreateDirectory(target.FullName)
End If
' Copy each file into it's new directory.
For Each fi As FileInfo In source.GetFiles()
Console.WriteLine("Copying {0}\{1}", target.FullName, fi.Name)
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), True)
Next
' Copy each subdirectory using recursion.
For Each diSourceSubDir As DirectoryInfo In source.GetDirectories()
Dim nextTargetSubDir As DirectoryInfo = target.CreateSubdirectory(diSourceSubDir.Name)
CopyAll(diSourceSubDir, nextTargetSubDir)
Next
End Sub
Shared Sub Main()
Dim sourceDirectory As String = "c:\\sourceDirectory"
Dim targetDirectory As String = "c:\\targetDirectory"
Dim diSource As DirectoryInfo = New DirectoryInfo(sourceDirectory)
Dim diTarget As DirectoryInfo = New DirectoryInfo(targetDirectory)
CopyAll(diSource, diTarget)
End Sub
' Output will vary based on the contents of the source directory.
End Class
설명
DirectoryInfo 디렉터리 복사, 이동, 이름 바꾸기, 만들기 및 삭제와 같은 일반적인 작업에는 클래스를 사용합니다.
개체를 여러 번 다시 사용하려는 경우 보안 검사 DirectoryInfo 항상 필요한 것은 아니므로 클래스의 해당 정적 메서드 대신 instance 메서드 Directory 를 사용하는 것이 좋습니다.
참고
경로를 입력 문자열로 수락하는 멤버에서 해당 경로는 올바른 형식이어야 합니다. 그렇지 않으면 예외가 발생합니다. 예를 들어 경로가 정규화되었지만 공백으로 시작하는 경우 경로는 클래스의 메서드에서 트리밍되지 않습니다. 따라서 경로 형식이 잘못되고 예외가 발생합니다. 마찬가지로 경로 또는 경로 조합을 두 번 정규화할 수 없습니다. 예를 들어 "c:\temp c:\windows"는 대부분의 경우 예외를 발생합니다. 경로 문자열을 허용하는 메서드를 사용할 때 경로가 올바른 형식인지 확인합니다.
경로를 허용하는 멤버에서 경로는 파일 또는 디렉터리만 참조할 수 있습니다. 지정된 경로는 서버 및 공유 이름에 대한 상대 경로 또는 UNC(범용 명명 규칙) 경로를 참조할 수도 있습니다. 예를 들어 다음 모두 허용되는 경로입니다.
C#의 "c:\\MyDir\\MyFile.txt" 또는 Visual Basic의 "c:\MyDir\MyFile.txt".
C#의 "c:\\MyDir" 또는 Visual Basic의 "c:\MyDir"
C#의 "MyDir\\MySubdir" 또는 Visual Basic의 "MyDir\MySubDir"
C#의 "\\\\MyServer\\MyShare", Visual Basic의 "\\MyServer\MyShare"
기본적으로 새 디렉터리에 대한 전체 읽기/쓰기 액세스 권한은 모든 사용자에게 부여됩니다.
일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.
생성자
DirectoryInfo(String) |
지정된 경로를 사용하여 DirectoryInfo 클래스의 새 인스턴스를 초기화합니다. |
필드
FullPath |
파일이나 디렉터리의 정규화된 경로를 나타냅니다. (다음에서 상속됨 FileSystemInfo) |
OriginalPath |
사용자가 원래 지정한 상대 또는 절대 경로입니다. (다음에서 상속됨 FileSystemInfo) |
속성
Attributes |
현재 파일 또는 디렉터리의 특성을 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
CreationTime |
현재 파일 또는 디렉터리를 만든 시간을 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
CreationTimeUtc |
현재 파일 또는 디렉터리를 만든 시간을 UTC(협정 세계시) 기준으로 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
Exists |
디렉터리가 있는지를 나타내는 값을 가져옵니다. |
Extension |
전체 파일 이름인 경우에도 선행 점을 |
FullName |
디렉터리의 전체 경로를 가져옵니다. |
FullName |
파일이나 디렉터리의 전체 경로를 가져옵니다. (다음에서 상속됨 FileSystemInfo) |
LastAccessTime |
현재 파일이나 디렉터리에 마지막으로 액세스한 시간을 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
LastAccessTimeUtc |
현재 파일이나 디렉터리를 마지막으로 액세스한 시간을 UTC 기준으로 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
LastWriteTime |
현재 파일이나 디렉터리에 마지막으로 쓴 시간을 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
LastWriteTimeUtc |
현재 파일이나 디렉터리에 마지막으로 쓴 시간을 UTC 기준으로 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
LinkTarget |
에 FullName있는 링크의 대상 경로를 가져오거나 |
Name |
이 DirectoryInfo 인스턴스의 이름을 가져옵니다. |
Parent |
지정된 하위 디렉터리의 부모 디렉터리를 가져옵니다. |
Root |
디렉터리의 루트 부분을 가져옵니다. |
UnixFileMode |
현재 파일 또는 디렉터리에 대한 Unix 파일 모드를 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
메서드
Create() |
디렉터리를 만듭니다. |
Create(DirectorySecurity) |
DirectorySecurity 개체를 사용하여 디렉터리를 만듭니다. |
CreateAsSymbolicLink(String) |
지정된 |
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
CreateSubdirectory(String) |
지정된 경로에 하위 디렉터리를 하나 이상 만듭니다. 지정된 경로는 DirectoryInfo 클래스의 이 인스턴스에 대한 상대적 경로일 수 있습니다. |
CreateSubdirectory(String, DirectorySecurity) |
지정된 경로에 지정된 보안을 사용하여 하위 디렉터리를 하나 이상 만듭니다. 지정된 경로는 DirectoryInfo 클래스의 이 인스턴스에 대한 상대적 경로일 수 있습니다. |
Delete() |
DirectoryInfo가 비어 있으면 이를 삭제합니다. |
Delete(Boolean) |
하위 디렉터리와 파일을 삭제할지 여부를 지정하여 DirectoryInfo의 이 인스턴스를 삭제합니다. |
EnumerateDirectories() |
현재 디렉터리에 있는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories(String) |
지정된 검색 패턴과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories(String, EnumerationOptions) |
지정된 검색 패턴 및 열거형 옵션과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories(String, SearchOption) |
지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateFiles() |
현재 디렉터리에 있는 파일 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateFiles(String) |
검색 패턴과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateFiles(String, EnumerationOptions) |
지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateFiles(String, SearchOption) |
지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateFileSystemInfos() |
현재 디렉터리에 있는 파일 시스템 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateFileSystemInfos(String) |
지정된 검색 패턴과 일치하는 파일 시스템 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateFileSystemInfos(String, EnumerationOptions) |
지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 시스템 정보의 열거 가능 컬렉션을 반환합니다. |
EnumerateFileSystemInfos(String, SearchOption) |
지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 파일 시스템 정보의 열거 가능 컬렉션을 반환합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetAccessControl() |
현재 DirectorySecurity 개체에서 설명하는 디렉터리의 ACL(액세스 제어 목록) 항목을 캡슐화하는 DirectoryInfo 개체를 가져옵니다. |
GetAccessControl(AccessControlSections) |
현재 DirectorySecurity 개체에서 설명하는 디렉터리의 지정된 ACL(액세스 제어 목록) 항목 형식을 캡슐화하는 DirectoryInfo 개체를 가져옵니다. |
GetDirectories() |
현재 디렉터리의 하위 디렉터리를 반환합니다. |
GetDirectories(String) |
주어진 검색 조건에 일치하는 현재 DirectoryInfo에 있는 디렉터리의 배열을 반환합니다. |
GetDirectories(String, EnumerationOptions) |
지정된 검색 패턴 및 열거 옵션과 일치하는 현재 DirectoryInfo의 디렉터리배열을 반환합니다. |
GetDirectories(String, SearchOption) |
하위 디렉터리를 검색할지 여부를 나타내는 값을 사용하여 현재 DirectoryInfo에서 지정된 검색 조건과 일치하는 디렉터리의 배열을 반환합니다. |
GetFiles() |
현재 디렉터리에서 파일 목록을 반환합니다. |
GetFiles(String) |
현재 디렉터리에서 지정된 검색 패턴과 일치하는 파일 목록을 반환합니다. |
GetFiles(String, EnumerationOptions) |
지정된 검색 패턴 및 열거 옵션과 일치하는 현재 디렉터리의 파일 목록을 반환합니다. |
GetFiles(String, SearchOption) |
하위 디렉터리를 검색할지 여부를 나타내는 값을 사용하여 현재 디렉터리에서 지정된 검색 패턴과 일치하는 파일 목록을 반환합니다. |
GetFileSystemInfos() |
디렉터리의 모든 파일과 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 엔트리 배열을 반환합니다. |
GetFileSystemInfos(String) |
지정된 검색 조건과 일치하는 파일 및 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다. |
GetFileSystemInfos(String, EnumerationOptions) |
지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 및 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다. |
GetFileSystemInfos(String, SearchOption) |
지정된 검색 조건과 일치하는 파일 및 하위 디렉터리를 나타내는 FileSystemInfo 개체 배열을 검색합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
파일 이름 및 추가 예외 정보를 사용하여 SerializationInfo 개체를 설정합니다. (다음에서 상속됨 FileSystemInfo) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
MoveTo(String) |
DirectoryInfo 인스턴스 및 해당 내용을 새 경로로 이동합니다. |
Refresh() |
개체의 상태를 새로 고칩니다. (다음에서 상속됨 FileSystemInfo) |
ResolveLinkTarget(Boolean) |
지정된 링크의 대상을 가져옵니다. (다음에서 상속됨 FileSystemInfo) |
SetAccessControl(DirectorySecurity) |
DirectorySecurity 개체에서 설명하는 ACL(액세스 제어 목록) 항목을 현재 DirectoryInfo 개체에서 설명하는 디렉터리에 적용합니다. |
ToString() |
DirectoryInfo 생성자에 전달된 원래 경로를 반환합니다. 전체 경로 또는 파일/디렉터리 이름에는 이 메서드 대신 FullName 또는 Name 속성을 사용합니다. |
ToString() |
원래 경로를 반환합니다. 전체 경로 또는 파일/디렉터리 이름의 FullName 또는 Name 속성을 사용합니다. (다음에서 상속됨 FileSystemInfo) |
확장 메서드
Create(DirectoryInfo, DirectorySecurity) |
지정된 디렉터리 보안을 사용하여 새 파일 디렉터리를 만듭니다. 디렉터리가 이미 있는 경우 아무 작업도 수행되지 않습니다. |
GetAccessControl(DirectoryInfo) |
디렉터리의 보안 정보를 반환합니다. |
GetAccessControl(DirectoryInfo, AccessControlSections) |
디렉터리의 보안 정보를 반환합니다. |
SetAccessControl(DirectoryInfo, DirectorySecurity) |
기존 디렉터리의 보안 특성을 변경합니다. |
적용 대상
추가 정보
.NET