문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문
이 설명서는 보관되지만 유지 되지 않습니다.

Directory 클래스

디렉터리와 하위 디렉터리에서 만들기, 이동 및 열거를 위한 정적 메서드를 노출합니다. 이 클래스는 상속될 수 없습니다.

System::Object
  System.IO::Directory

네임스페이스:  System.IO
어셈블리:  mscorlib(mscorlib.dll)

[ComVisibleAttribute(true)]
public ref class Directory abstract sealed

Directory 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드정적 멤버XNA Framework에서 지원CreateDirectory(String)지정된 경로에 모든 디렉터리와 하위 디렉터리를 만듭니다.
Public 메서드정적 멤버CreateDirectory(String, DirectorySecurity)지정된 경로에 모든 디렉터리를 만들고 지정된 Windows 보안을 적용합니다.
Public 메서드정적 멤버XNA Framework에서 지원Delete(String)지정된 경로에서 빈 디렉터리를 삭제합니다.
Public 메서드정적 멤버XNA Framework에서 지원Delete(String, Boolean)지정된 디렉터리와 해당 디렉터리의 하위 디렉터리 및 파일을 삭제합니다.
Public 메서드정적 멤버EnumerateDirectories(String)지정된 경로에 있는 디렉터리 이름의 열거 가능 컬렉션을 반환합니다.
Public 메서드정적 멤버EnumerateDirectories(String, String)지정된 경로에서 검색 패턴과 일치하는 디렉터리 이름의 열거 가능 컬렉션을 반환합니다.
Public 메서드정적 멤버EnumerateDirectories(String, String, SearchOption)지정된 경로에서 검색 패턴과 일치하는 디렉터리 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다.
Public 메서드정적 멤버EnumerateFiles(String)지정된 경로에 있는 파일 이름의 열거 가능 컬렉션을 반환합니다.
Public 메서드정적 멤버EnumerateFiles(String, String)지정된 경로에서 검색 패턴과 일치하는 파일 이름의 열거 가능 컬렉션을 반환합니다.
Public 메서드정적 멤버EnumerateFiles(String, String, SearchOption)지정된 경로에서 검색 패턴과 일치하는 파일 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다.
Public 메서드정적 멤버EnumerateFileSystemEntries(String)지정된 경로에 있는 파일 시스템 항목의 열거 가능 컬렉션을 반환합니다.
Public 메서드정적 멤버EnumerateFileSystemEntries(String, String)지정된 경로에서 검색 패턴과 일치하는 파일 시스템 항목의 열거 가능 컬렉션을 반환합니다.
Public 메서드정적 멤버EnumerateFileSystemEntries(String, String, SearchOption)지정된 경로에서 검색 패턴과 일치하는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다.
Public 메서드정적 멤버XNA Framework에서 지원Exists지정된 경로가 디스크에 있는 기존 디렉터리를 참조하는지 여부를 확인합니다.
Public 메서드정적 멤버GetAccessControl(String)지정된 디렉터리의 ACL(액세스 제어 목록) 항목을 캡슐화하는 DirectorySecurity 개체를 가져옵니다.
Public 메서드정적 멤버GetAccessControl(String, AccessControlSections)지정된 디렉터리의 지정된 ACL(액세스 제어 목록) 항목 형식을 캡슐화하는 DirectorySecurity 개체를 가져옵니다.
Public 메서드정적 멤버XNA Framework에서 지원GetCreationTime디렉터리를 만든 날짜와 시간을 가져옵니다.
Public 메서드정적 멤버GetCreationTimeUtc디렉터리를 만든 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 가져옵니다.
Public 메서드정적 멤버XNA Framework에서 지원GetCurrentDirectory응용 프로그램의 현재 작업 디렉터리를 가져옵니다.
Public 메서드정적 멤버XNA Framework에서 지원GetDirectories(String)지정된 디렉터리에 있는 하위 디렉터리(경로 포함)의 이름을 가져옵니다.
Public 메서드정적 멤버XNA Framework에서 지원GetDirectories(String, String)현재 디렉터리에서 지정된 검색 패턴과 일치하는 디렉터리 배열(해당 경로 포함)을 가져옵니다.
Public 메서드정적 멤버GetDirectories(String, String, SearchOption)현재 디렉터리에서 지정된 검색 패턴과 일치하는 디렉터리(해당 경로 포함)의 이름을 가져오고 선택적으로 하위 디렉터리를 검색합니다.
Public 메서드정적 멤버XNA Framework에서 지원GetDirectoryRoot지정된 경로에 대한 볼륨 정보, 루트 정보 또는 두 정보 모두를 반환합니다.
Public 메서드정적 멤버XNA Framework에서 지원GetFiles(String)지정된 디렉터리에 있는 파일의 이름(경로 포함)을 반환합니다.
Public 메서드정적 멤버XNA Framework에서 지원GetFiles(String, String)지정된 디렉터리에서 지정된 검색 패턴과 일치하는 파일 이름(파일 경로 포함)을 반환합니다.
Public 메서드정적 멤버GetFiles(String, String, SearchOption)하위 디렉터리를 검색할지 여부를 나타내는 값을 사용하여 지정된 디렉터리에서 지정된 검색 패턴과 일치하는 파일 이름(파일 경로 포함)을 반환합니다.
Public 메서드정적 멤버XNA Framework에서 지원GetFileSystemEntries(String)지정된 디렉터리에 있는 모든 파일과 하위 디렉터리 이름을 반환합니다.
Public 메서드정적 멤버XNA Framework에서 지원GetFileSystemEntries(String, String)지정된 검색 조건과 일치하는 파일 시스템 항목 배열을 반환합니다.
Public 메서드정적 멤버GetFileSystemEntries(String, String, SearchOption)지정된 경로에서 검색 패턴과 일치하는 모든 파일 이름 및 디렉터리 이름의 배열을 가져오고 선택적으로 하위 디렉터리를 검색합니다.
Public 메서드정적 멤버XNA Framework에서 지원GetLastAccessTime지정된 파일 또는 디렉터리를 마지막으로 액세스한 날짜와 시간을 반환합니다.
Public 메서드정적 멤버GetLastAccessTimeUtc지정된 파일 또는 디렉터리에 마지막으로 액세스한 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 반환합니다.
Public 메서드정적 멤버XNA Framework에서 지원GetLastWriteTime지정된 파일 또는 디렉터리를 마지막으로 쓴 날짜와 시간을 반환합니다.
Public 메서드정적 멤버GetLastWriteTimeUtc지정된 파일이나 디렉터리에 마지막으로 쓴 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 반환합니다.
Public 메서드정적 멤버GetLogicalDrives해당 컴퓨터에서 "<드라이브 문자>:\"의 형식으로 논리 드라이브 이름을 검색합니다.
Public 메서드정적 멤버GetParent지정된 경로의 절대 경로와 상대 경로를 모두 포함한 부모 디렉터리를 검색합니다.
Public 메서드정적 멤버XNA Framework에서 지원Move파일 또는 디렉터리와 그 내용을 새 위치로 이동합니다.
Public 메서드정적 멤버SetAccessControl DirectorySecurity 개체에서 설명하는 ACL(액세스 제어 목록) 항목을 지정된 디렉터리에 적용합니다.
Public 메서드정적 멤버SetCreationTime지정된 파일 또는 디렉터리에 대한 만든 날짜와 시간을 설정합니다.
Public 메서드정적 멤버SetCreationTimeUtc지정된 파일이나 디렉터리를 만든 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다.
Public 메서드정적 멤버XNA Framework에서 지원SetCurrentDirectory응용 프로그램의 현재 작업 디렉터리를 지정된 디렉터리로 설정합니다.
Public 메서드정적 멤버SetLastAccessTime지정된 파일 또는 디렉터리를 마지막으로 액세스한 날짜와 시간을 설정합니다.
Public 메서드정적 멤버SetLastAccessTimeUtc지정된 파일 또는 디렉터리에 마지막으로 액세스한 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다.
Public 메서드정적 멤버SetLastWriteTime디렉터리를 마지막으로 쓴 날짜와 시간을 설정합니다.
Public 메서드정적 멤버SetLastWriteTimeUtc디렉터리에 마지막으로 쓴 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다.
위쪽

디렉터리의 복사, 이동, 이름 바꾸기 및 삭제와 같은 일반적인 작업을 수행하는 데 Directory 클래스를 사용할 수 있습니다. 또한 디렉터리의 생성, 액세스 및 쓰기와 관련된 DateTime 정보를 얻고 설정하는 경우에도 Directory 클래스를 사용할 수 있습니다.

모든 Directory 메서드가 정적이기 때문에 한 작업만 수행하는 경우에는 해당하는 DirectoryInfo 인스턴스 메서드보다 Directory 메서드를 사용하는 것이 더욱 효율적일 수 있습니다. 대부분의 Directory 메서드에는 조작하는 디렉터리에 대한 경로가 필요합니다.

Directory 클래스의 정적 메서드는 모든 메서드에 대해 보안 검사를 수행합니다. 따라서 개체를 여러 번 다시 사용해야 하는 경우 정적 메서드에 대응되는 DirectoryInfo 인스턴스 메서드를 사용할 수 있으며, 이 메서드는 보안 검사가 필수적이지 않습니다.

참고참고

경로를 입력 문자열로 받는 멤버에서 해당 경로는 제대로 구성되어야 하며 그렇지 않으면 예외가 발생합니다. 하지만 경로가 정규화된 경로지만 공백으로 시작하는 경우에는 공백이 제거되지 않으며 예외가 발생하지 않습니다. 마찬가지로 경로나 경로 조합은 두 번 정규화될 수 없습니다. 예를 들어, "c:\temp c:\windows"는 대부분의 경우에 예외를 발생시킵니다. 경로 문자열이 적용되는 메서드를 사용할 경우 해당 경로가 제대로 구성되었는지 확인해야 합니다.

경로가 적용되는 멤버에서 경로는 파일이나 디렉터리를 참조할 수 있습니다. 또한 지정된 경로는 서버와 공유 이름의 상대 경로나 UNC(Universal Naming Convention) 경로를 나타낼 수 있습니다. 예를 들어, 다음과 같은 경로를 사용할 수 있습니다.

  • C#의 "c:\\MyDir" 또는 Visual Basic의 "c:\MyDir"

  • C#의 "MyDir\\MySubdir" 또는 Visual Basic의 "MyDir\MySubDir"

  • C#의 "\\\\MyServer\\MyShare" 또는 Visual Basic의 "\\MyServer\MyShare"

기본적으로 모든 사용자에게 새 디렉터리에 대한 모든 읽기/쓰기 권한이 부여됩니다. 경로 문자열이 디렉터리 구분 문자로 끝나는 디렉터리에 대한 권한을 요청하면 포함된 모든 하위 디렉터리에 대한 권한이 요청됩니다(예: "C:\Temp\"). 특정 디렉터리에 대한 권한만 필요한 경우에는 문자열이 마침표로 끝나야 합니다(예: "C:\Temp\.").

공통 I/O 작업의 목록에 대해서는, 공통적인 I/O 작업을 참고하십시오.

다음 코드 예제에서는 지정된 디렉터리가 있는지 여부를 확인한 다음 있으면 삭제하고 없으면 디렉터리를 만듭니다. 그런 다음 디렉터리를 이동하고 디렉터리에 파일을 만들고 디렉터리에서 파일을 셉니다.


using namespace System;
using namespace System::IO;
int main()
{

   // Specify the directories you want to manipulate.
   String^ path = "c:\\MyDir";
   String^ target = "c:\\TestDir";
   try
   {

      // Determine whether the directory exists.
      if (  !Directory::Exists( path ) )
      {

         // Create the directory it does not exist.
         Directory::CreateDirectory( path );
      }
      if ( Directory::Exists( target ) )
      {

         // Delete the target to ensure it is not there.
         Directory::Delete( target, true );
      }

      // Move the directory.
      Directory::Move( path, target );

      // Create a file in the directory.
      File::CreateText( String::Concat( target, "\\myfile.txt" ) );

      // Count the files in the target directory.
      Console::WriteLine( "The number of files in {0} is {1}", target, Directory::GetFiles( target )->Length );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}



다음 코드 예제에서는 디렉터리의 크기를 계산하는 방법을 보여 줍니다.


// The following example calculates the size of a directory
// and its subdirectories, if any, and displays the total size
// in bytes.
using namespace System;
using namespace System::IO;

public ref class ShowDirSize
{
public:
    static long DirSize( DirectoryInfo^ d )
    {
        long Size = 0;

        // Add file sizes.
        array<FileInfo^>^ fis = d->GetFiles();

        for each (FileInfo^ fi in fis)
        {
            Size += (long)fi->Length;
        }

        array<DirectoryInfo^>^ dis = d->GetDirectories();

        for each (DirectoryInfo^ di in dis)
        {
            Size += DirSize( di );
        }

        return Size;
    }

    static void Main( array<String^>^args )
    {
        if ( args->Length != 2 )
        {
            Console::WriteLine( "You must provide a directory argument at the command line." );
        }
        else
        {
            DirectoryInfo^ d = gcnew DirectoryInfo( args[ 1 ] );
            long dsize = DirSize(d);
            Console::WriteLine( "The size of {0} and its subdirectories is {1} bytes.", d, dsize );
       }
    }
};

int main()
{
   array<String^>^ args = Environment::GetCommandLineArgs();
   ShowDirSize::Main( args );
}


.NET Framework

4, 3.5, 3.0, 2.0, 1.1, 1.0에서 지원

.NET Framework Client Profile

4, 3.5 SP1에서 지원

Windows 7, Windows Vista SP1 이상, Windows XP SP3, Windows XP SP2 x64 버전, Windows Server 2008(Server Core는 지원되지 않음), Windows Server 2008 R2(Server Core는 SP1 이상에서 지원됨), Windows Server 2003 SP2

.NET Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
표시: