DirectoryInfo Class

Definition

디렉터리 및 하위 디렉터리를 만들고, 이동하고, 열거하는 인스턴스 메서드를 노출합니다.Exposes instance methods for creating, moving, and enumerating through directories and subdirectories. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

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.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class DirectoryInfo : System.IO.FileSystemInfo
type DirectoryInfo = class
    inherit FileSystemInfo
Public NotInheritable Class DirectoryInfo
Inherits FileSystemInfo
Inheritance
DirectoryInfo
Inheritance
Attributes

Examples

다음 예제에서는 DirectoryInfo 클래스의 일부 주 멤버를 보여 줍니다.The following example demonstrates some of the main members of the DirectoryInfo class.

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

다음 예제에서는 디렉터리와 해당 콘텐츠를 복사 하는 방법에 설명 합니다.The following example demonstrates how to copy a directory and its contents.

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

Remarks

디렉터리 복사, 이동, 이름 바꾸기, 만들기 및 삭제와 같은 일반적인 작업에 DirectoryInfo 클래스를 사용 합니다.Use the DirectoryInfo class for typical operations such as copying, moving, renaming, creating, and deleting directories.

개체를 여러 번 다시 사용 하려는 경우에는 보안 검사가 항상 필요 하지 않기 때문에 Directory 클래스의 해당 정적 메서드 대신 DirectoryInfo의 인스턴스 메서드를 사용 하는 것이 좋습니다.If you are going to reuse an object several times, consider using the instance method of DirectoryInfo instead of the corresponding static methods of the Directory class, because a security check will not always be necessary.

Note

입력 문자열로 경로 허용 하는 멤버를 해당 경로 올바른 형식 이어야 합니다. 또는 예외가 발생 합니다.In members that accept a path as an input string, that path must be well-formed or an exception is raised. 예를 들어, 경로 정규화 공백으로 시작 하지만 경로 클래스의 메서드에서 잘리지 않습니다.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. 따라서 경로 잘못 되었으며 예외가 발생 합니다.Therefore, the path is malformed and an exception is raised. 마찬가지로, 경로 또는 경로의 조합을 두 번 정규화 될 수 없습니다.Similarly, a path or a combination of paths cannot be fully qualified twice. 예를 들어, "c:\temp c:\windows"는 또한 대부분의 경우에서 예외가 발생합니다.For example, "c:\temp c:\windows" also raises an exception in most cases. 경로 잘 구성 된 경우에 경로 문자열을 허용 하는 메서드를 사용 하 여 확인 합니다.Ensure that your paths are well-formed when using methods that accept a path string.

경로 허용 하는 멤버의 경로 파일 또는 디렉터리를 참조할 수 있습니다.In members that accept a path, the path can refer to a file or just a directory. 지정된 된 경로 상대 경로 또는 서버 및 공유 이름에 대 한 범용 명명 규칙 (UNC) 경로 참조할 수 있습니다.The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. 예를 들어, 다음은 허용 가능한 경로.For example, all the following are acceptable paths:

  • "c:\\MyDir\\MyFile.txt" C#또는 "c:\MyDir\MyFile.txt" (Visual Basic)."c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.

  • Visual Basic의 "c:\\MyDir C#" 또는 "c:\mydir"입니다."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • Visual Basic의 "MyDir\\MySubdir C#" 또는 "MyDir\MySubDir"입니다."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" in C#"또는"\myserver\myshare "(Visual Basic)."\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

기본적으로 새 디렉터리에 대 한 전체 읽기/쓰기 액세스는 모든 사용자에 게 부여 됩니다.By default, full read/write access to new directories is granted to all users.

일반적인 i/o 작업 목록은 일반적인 I/o 작업을 참조 하세요.For a list of common I/O tasks, see Common I/O Tasks.

Constructors

DirectoryInfo(String)

지정된 경로를 사용하여 DirectoryInfo 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the DirectoryInfo class on the specified path.

Fields

FullPath

파일이나 디렉터리의 정규화된 경로를 나타냅니다.Represents the fully qualified path of the directory or file.

(Inherited from FileSystemInfo)
OriginalPath

사용자가 원래 지정한 상대 또는 절대 경로입니다.The path originally specified by the user, whether relative or absolute.

(Inherited from FileSystemInfo)

Properties

Attributes

현재 파일 또는 디렉터리의 특성을 가져오거나 설정합니다.Gets or sets the attributes for the current file or directory.

(Inherited from FileSystemInfo)
CreationTime

현재 파일 또는 디렉터리를 만든 시간을 가져오거나 설정합니다.Gets or sets the creation time of the current file or directory.

(Inherited from FileSystemInfo)
CreationTimeUtc

현재 파일 또는 디렉터리를 만든 시간을 UTC(협정 세계시) 기준으로 가져오거나 설정합니다.Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory.

(Inherited from FileSystemInfo)
Exists

디렉터리가 있는지를 나타내는 값을 가져옵니다.Gets a value indicating whether the directory exists.

Extension

파일의 확장명 부분을 나타내는 문자열을 가져옵니다.Gets the string representing the extension part of the file.

(Inherited from FileSystemInfo)
FullName

디렉터리의 전체 경로를 가져옵니다.Gets the full path of the directory.

FullName

파일이나 디렉터리의 전체 경로를 가져옵니다.Gets the full path of the directory or file.

(Inherited from FileSystemInfo)
LastAccessTime

현재 파일이나 디렉터리에 마지막으로 액세스한 시간을 가져오거나 설정합니다.Gets or sets the time the current file or directory was last accessed.

(Inherited from FileSystemInfo)
LastAccessTimeUtc

현재 파일이나 디렉터리를 마지막으로 액세스한 시간을 UTC 기준으로 가져오거나 설정합니다.Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed.

(Inherited from FileSystemInfo)
LastWriteTime

현재 파일이나 디렉터리에 마지막으로 쓴 시간을 가져오거나 설정합니다.Gets or sets the time when the current file or directory was last written to.

(Inherited from FileSystemInfo)
LastWriteTimeUtc

현재 파일이나 디렉터리에 마지막으로 쓴 시간을 UTC 기준으로 가져오거나 설정합니다.Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.

(Inherited from FileSystemInfo)
Name

DirectoryInfo 인스턴스의 이름을 가져옵니다.Gets the name of this DirectoryInfo instance.

Parent

지정된 하위 디렉터리의 부모 디렉터리를 가져옵니다.Gets the parent directory of a specified subdirectory.

Root

디렉터리의 루트 부분을 가져옵니다.Gets the root portion of the directory.

Methods

Create()

디렉터리를 만듭니다.Creates a directory.

Create(DirectorySecurity)

DirectorySecurity 개체를 사용하여 디렉터리를 만듭니다.Creates a directory using a DirectorySecurity object.

CreateObjRef(Type)

원격 개체와 통신 하는 데 프록시를 생성 하는 데 필요한 모든 관련 정보를 포함 하는 개체를 만듭니다.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
CreateSubdirectory(String)

지정된 경로에 하위 디렉터리를 하나 이상 만듭니다.Creates a subdirectory or subdirectories on the specified path. 지정된 경로는 DirectoryInfo 클래스의 이 인스턴스에 대한 상대적 경로일 수 있습니다.The specified path can be relative to this instance of the DirectoryInfo class.

CreateSubdirectory(String, DirectorySecurity)

지정된 경로에 지정된 보안을 사용하여 하위 디렉터리를 하나 이상 만듭니다.Creates a subdirectory or subdirectories on the specified path with the specified security. 지정된 경로는 DirectoryInfo 클래스의 이 인스턴스에 대한 상대적 경로일 수 있습니다.The specified path can be relative to this instance of the DirectoryInfo class.

Delete()

DirectoryInfo 가 비어 있으면 이를 삭제합니다.Deletes this DirectoryInfo if it is empty.

Delete(Boolean)

하위 디렉터리와 파일을 삭제할지를 지정하여 DirectoryInfo의 이 인스턴스를 삭제합니다.Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.

EnumerateDirectories()

현재 디렉터리에 있는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of directory information in the current directory.

EnumerateDirectories(String)

지정된 검색 패턴과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of directory information that matches a specified search pattern.

EnumerateDirectories(String, EnumerationOptions)

지정된 검색 패턴 및 열거형 옵션과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of directory information that matches the specified search pattern and enumeration options.

EnumerateDirectories(String, SearchOption)

지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 디렉터리 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of directory information that matches a specified search pattern and search subdirectory option.

EnumerateFiles()

현재 디렉터리에 있는 파일 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file information in the current directory.

EnumerateFiles(String)

검색 패턴과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file information that matches a search pattern.

EnumerateFiles(String, EnumerationOptions)

지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file information that matches the specified search pattern and enumeration options.

EnumerateFiles(String, SearchOption)

지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 파일 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file information that matches a specified search pattern and search subdirectory option.

EnumerateFileSystemInfos()

현재 디렉터리에 있는 파일 시스템 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file system information in the current directory.

EnumerateFileSystemInfos(String)

지정된 검색 패턴과 일치하는 파일 시스템 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file system information that matches a specified search pattern.

EnumerateFileSystemInfos(String, EnumerationOptions)

지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 시스템 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file system information that matches the specified search pattern and enumeration options.

EnumerateFileSystemInfos(String, SearchOption)

지정된 검색 패턴 및 하위 디렉터리 검색 옵션과 일치하는 파일 시스템 정보의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file system information that matches a specified search pattern and search subdirectory option.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAccessControl()

현재 DirectorySecurity 개체에서 설명하는 디렉터리의 ACL(액세스 제어 목록) 항목을 캡슐화하는 DirectoryInfo 개체를 가져옵니다.Gets a DirectorySecurity object that encapsulates the access control list (ACL) entries for the directory described by the current DirectoryInfo object.

GetAccessControl(AccessControlSections)

현재 DirectorySecurity 개체에서 설명하는 디렉터리의 지정된 ACL(액세스 제어 목록) 항목 형식을 캡슐화하는 DirectoryInfo 개체를 가져옵니다.Gets a DirectorySecurity object that encapsulates the specified type of access control list (ACL) entries for the directory described by the current DirectoryInfo object.

GetDirectories()

현재 디렉터리의 하위 디렉터리를 반환합니다.Returns the subdirectories of the current directory.

GetDirectories(String)

주어진 검색 조건에 일치하는 현재 DirectoryInfo 에 있는 디렉터리의 배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the given search criteria.

GetDirectories(String, EnumerationOptions)

지정된 검색 패턴 및 열거 옵션과 일치하는 현재 DirectoryInfo의 디렉터리배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the specified search pattern and enumeration options.

GetDirectories(String, SearchOption)

하위 디렉터리를 검색할지를 나타내는 값을 사용하여 현재 DirectoryInfo 에서 지정된 검색 조건과 일치하는 디렉터리의 배열을 반환합니다.Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories.

GetFiles()

현재 디렉터리에서 파일 목록을 반환합니다.Returns a file list from the current directory.

GetFiles(String)

현재 디렉터리에서 지정된 검색 패턴과 일치하는 파일 목록을 반환합니다.Returns a file list from the current directory matching the given search pattern.

GetFiles(String, EnumerationOptions)

지정된 검색 패턴 및 열거 옵션과 일치하는 현재 디렉터리의 파일 목록을 반환합니다.Returns a file list from the current directory matching the specified search pattern and enumeration options.

GetFiles(String, SearchOption)

하위 디렉터리를 검색할지를 나타내는 값을 사용하여 현재 디렉터리에서 지정된 검색 패턴과 일치하는 파일 목록을 반환합니다.Returns a file list from the current directory matching the given search pattern and using a value to determine whether to search subdirectories.

GetFileSystemInfos()

디렉터리의 모든 파일과 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 항목 배열을 반환합니다.Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory.

GetFileSystemInfos(String)

지정된 검색 조건과 일치하는 파일 및 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다.Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search criteria.

GetFileSystemInfos(String, EnumerationOptions)

지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 및 하위 디렉터리를 나타내는 강력한 형식의 FileSystemInfo 개체 배열을 검색합니다.Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search pattern and enumeration options.

GetFileSystemInfos(String, SearchOption)

지정된 검색 조건과 일치하는 파일 및 하위 디렉터리를 나타내는 FileSystemInfo 개체 배열을 검색합니다.Retrieves an array of FileSystemInfo objects that represent the files and subdirectories matching the specified search criteria.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(Inherited from Object)
GetLifetimeService()

이 인스턴스의 수명 정책을 제어 하는 현재의 수명 서비스 개체를 검색 합니다.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

파일 이름 및 추가 예외 정보를 사용하여 SerializationInfo 개체를 설정합니다.Sets the SerializationInfo object with the file name and additional exception information.

(Inherited from FileSystemInfo)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService()

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
MoveTo(String)

DirectoryInfo 인스턴스 및 해당 내용을 새 경로로 이동합니다.Moves a DirectoryInfo instance and its contents to a new path.

Refresh()

개체의 상태를 새로 고칩니다.Refreshes the state of the object.

(Inherited from FileSystemInfo)
SetAccessControl(DirectorySecurity)

DirectorySecurity 개체에서 설명하는 ACL(액세스 제어 목록) 항목을 현재 DirectoryInfo 개체에서 설명하는 디렉터리에 적용합니다.Applies access control list (ACL) entries described by a DirectorySecurity object to the directory described by the current DirectoryInfo object.

ToString()

DirectoryInfo 생성자에 전달된 원래 경로를 반환합니다.Returns the original path that was passed to the DirectoryInfo constructor. 전체 경로 또는 파일/디렉터리 이름에는 이 메서드 대신 FullName 또는 Name 속성을 사용합니다.Use the FullName or Name properties for the full path or file/directory name instead of this method.

Extension Methods

Create(DirectoryInfo, DirectorySecurity)

지정된 디렉터리 보안을 사용하여 새 파일 디렉터리를 만듭니다.Creates a new directory, ensuring it is created with the specified directory security. 디렉터리가 이미 있는 경우 아무 작업도 수행되지 않습니다.If the directory already exists, nothing is done.

GetAccessControl(DirectoryInfo)

디렉터리의 보안 정보를 반환합니다.Returns the security information of a directory.

GetAccessControl(DirectoryInfo, AccessControlSections)

디렉터리의 보안 정보를 반환합니다.Returns the security information of a directory.

SetAccessControl(DirectoryInfo, DirectorySecurity)

기존 디렉터리의 보안 특성을 변경합니다.Changes the security attributes of an existing directory.

Applies to

See also