Directory 클래스

정의

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

public ref class Directory abstract sealed
public ref class Directory sealed
public static class Directory
public sealed class Directory
[System.Runtime.InteropServices.ComVisible(true)]
public static class Directory
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
상속
Directory
특성

예제

다음 예제에서는 디렉터리에서 모든 텍스트 파일을 검색 하 고 새 디렉터리로 이동 하는 방법을 보여 줍니다.The following example shows how to retrieve all the text files from a directory and move them to a new directory. 파일 이동 되 면 원래 디렉터리에 더 이상 없습니다.After the files are moved, they no longer exist in the original directory.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\current";
            string archiveDirectory = @"C:\archive";

            try
            {
                var txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt");

                foreach (string currentFile in txtFiles)
                {
                    string fileName = currentFile.Substring(sourceDirectory.Length + 1);
                    Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName));
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\current"
        Dim archiveDirectory As String = "C:\archive"

        Try
            Dim txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")

            For Each currentFile As String In txtFiles
                Dim fileName = currentFile.Substring(sourceDirectory.Length + 1)
                Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
            Next
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try
    End Sub

End Module

다음 예제에서는 EnumerateFiles 메서드를 사용 하 여 디렉터리에서 텍스트 파일의 컬렉션을 검색 한 다음 쿼리에서 해당 컬렉션을 사용 하 여 "Example"을 포함 하는 모든 줄을 찾는 방법을 보여 줍니다.The following example demonstrates how to use the EnumerateFiles method to retrieve a collection of text files from a directory, and then use that collection in a query to find all the lines that contain "Example".

using System;
using System.IO;
using System.Linq;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string archiveDirectory = @"C:\archive";

            var files = from retrievedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                        from line in File.ReadLines(retrievedFile)
                        where line.Contains("Example")
                        select new
                        {
                            File = retrievedFile,
                            Line = line
                        };

            foreach (var f in files)
            {
                Console.WriteLine("{0} contains {1}", f.File, f.Line);
            }
            Console.WriteLine("{0} lines found.", files.Count().ToString());
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim archiveDirectory As String = "C:\archive"

        Dim files = From retrievedFile In Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories)
                    From line In File.ReadLines(retrievedFile)
                    Where line.Contains("Example")
                    Select New With {.curFile = retrievedFile, .curLine = line}

        For Each f In files
            Console.WriteLine("{0} contains {1}", f.curFile, f.curLine)
        Next
        Console.WriteLine("{0} lines found.", files.Count.ToString())

    End Sub

End Module

다음 예제에서는 디렉터리 및 모든 파일을 새 디렉터리로 이동 하는 방법에 설명 합니다.The following example demonstrates how to move a directory and all its files to a new directory. 이동 되었다는 사실을 후 원래 디렉터리 존재 하지 않습니다.The original directory no longer exists after it has been moved.

using System;
using System.IO;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string sourceDirectory = @"C:\source";
            string destinationDirectory = @"C:\destination";

            try
            {
                Directory.Move(sourceDirectory, destinationDirectory);  
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.IO

Module Module1

    Sub Main()
        Dim sourceDirectory As String = "C:\source"
        Dim destinationDirectory As String = "C:\destination"

        Try
            Directory.Move(sourceDirectory, destinationDirectory)
        Catch e As Exception
            Console.WriteLine(e.Message)
        End Try

    End Sub

End Module

설명

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

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

디렉터리 관련 작업을 하나만 수행 하는 경우에는 해당 하는 DirectoryInfo 인스턴스 메서드가 아닌 정적 Directory 메서드를 사용 하는 것이 더 효율적일 수 있습니다.If you are performing only one directory-related action, it might be more efficient to use a static Directory method rather than a corresponding DirectoryInfo instance method. 대부분의 Directory 메서드는 조작 하는 디렉터리에 대 한 경로가 필요 합니다.Most Directory methods require the path to the directory that you are manipulating.

참고

문자열 path 매개 변수를 허용 하는 멤버의 경우 해당 경로는 올바른 형식 이어야 합니다. 그렇지 않으면 예외가 발생 합니다.In members that accept a string path parameter, that path must be well-formed or an exception is raised. 예를 들어, 경로 정규화 하지만 공백 ("c:\temp")로 시작 하는 경우 경로 문자열 되지 조정이, 경로 형식이 잘못 된 것으로 간주 됩니다 및 예외가 발생 합니다.For example, if a path is fully qualified but begins with a space (" c:\temp"), the path string isn't trimmed, so the path is considered malformed and an exception is raised. 또한 경로 또는 경로의 조합을 두 번 정규화 될 수 없습니다.In addition, 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. 경로 잘 구성 된 경우에 경로 문자열을 허용 하는 메서드를 사용 하 여 확인 합니다.Ensure that your paths are well-formed when using methods that accept a path string. 자세한 내용은 Path를 참조하세요.For more information see Path.

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

  • 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. 그러나 앱에 기존 디렉터리에 액세스 하는 올바른 보안이 있어야 합니다.However, the app must have the correct security to access existing directories.

에 디렉터리 및 모든 해당 하위 디렉터리 구분 문자를 사용 하 여 경로 문자열 끝에 대 한 권한을 요청 합니다.To demand permissions for a directory and all its subdirectories, end the path string with the directory separator character. 예를 들어 "C:\Temp\"은 C:\Temp\ 및 모든 해당 하위 디렉터리에 대 한 액세스 권한을 부여 합니다. 특정 디렉터리에 대 한 사용 권한만 요청 하려면 마침표를 사용 하 여 경로 문자열을 종료 합니다.(For example, "C:\Temp\" grants access to C:\Temp\ and all its subdirectories.) To demand permissions only for a specific directory, end the path string with a period. 예를 들면 "C:\Temp\"입니다.(For example, "C:\Temp\." 는 해당 하위 디렉터리에 있는 것이 아니라 C:\Temp\에만 액세스 권한을 부여 합니다.grants access only to C:\Temp\, not to its subdirectories.)

searchPattern 매개 변수를 허용 하는 멤버에서 검색 문자열은 리터럴 문자 및 두 개의 와일드 카드 문자를 임의로 조합 하 여 사용할 수 있습니다. 및?를 * 합니다.In members that accept a searchPattern parameter, the search string can be any combination of literal characters and two wildcard characters; * and ?. 이 매개 변수는 정규식을 인식 하지 못합니다.This parameter does not recognize regular expressions. 자세한 내용은 EnumerateDirectories(String, String) 메서드 또는 searchPattern 매개 변수를 사용 하는 다른 메서드를 참조 하세요.For more information, see the EnumerateDirectories(String, String) method or any other method that uses the searchPattern parameter.

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

DirectoryDirectoryInfoWindows 스토어Windows Store 앱에서 사용 하도록 지원 되지 않습니다.Directory and DirectoryInfo are not supported for use in Windows 스토어Windows Store apps. Windows 스토어Windows Store apps에서 파일 및 폴더에 액세스 하는 방법에 대 한 자세한 내용은 데이터 및 파일 액세스 (Windows 스토어 앱)를 참조 하세요.For information about how to access files and folders in Windows 스토어Windows Store apps, see Accessing data and files (Windows Store apps).

메서드

CreateDirectory(String)

이미 존재하지 않는 한 지정된 경로에 모든 디렉터리와 하위 디렉터리를 만듭니다.Creates all directories and subdirectories in the specified path unless they already exist.

CreateDirectory(String, DirectorySecurity)

이미 존재하지 않는 경우 지정된 경로에 모든 디렉터리를 만들고 지정된 Windows 보안을 적용합니다.Creates all the directories in the specified path, unless they already exist, applying the specified Windows security.

Delete(String)

지정된 경로에서 빈 디렉터리를 삭제합니다.Deletes an empty directory from a specified path.

Delete(String, Boolean)

지정된 디렉터리와 해당 디렉터리의 하위 디렉터리 및 파일을 삭제합니다.Deletes the specified directory and, if indicated, any subdirectories and files in the directory.

EnumerateDirectories(String)

지정된 경로에 있는 디렉터리 전체 이름의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of directory full names in a specified path.

EnumerateDirectories(String, String)

지정된 경로에서 검색 패턴과 일치하는 디렉터리 전체 이름의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of directory full names that match a search pattern in a specified path.

EnumerateDirectories(String, String, EnumerationOptions)

지정된 경로에서 검색 패턴과 일치하는 디렉터리 전체 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다.Returns an enumerable collection of the directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateDirectories(String, String, SearchOption)

지정된 경로에서 검색 패턴과 일치하는 디렉터리 전체 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다.Returns an enumerable collection of directory full names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFiles(String)

지정된 경로에 있는 전체 파일 이름의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of full file names in a specified path.

EnumerateFiles(String, String)

지정된 경로에서 검색 패턴과 일치하는 전체 파일 이름의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of full file names that match a search pattern in a specified path.

EnumerateFiles(String, String, EnumerationOptions)

지정된 경로에서 검색 패턴 및 열거형 옵션과 일치하는 전체 파일 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다.Returns an enumerable collection of full file names that match a search pattern and enumeration options in a specified path, and optionally searches subdirectories.

EnumerateFiles(String, String, SearchOption)

지정된 경로에서 검색 패턴과 일치하는 전체 파일 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다.Returns an enumerable collection of full file names that match a search pattern in a specified path, and optionally searches subdirectories.

EnumerateFileSystemEntries(String)

지정된 경로에 있는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file names and directory names in a specified path.

EnumerateFileSystemEntries(String, String)

지정된 경로에서 검색 패턴과 일치하는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file names and directory names that match a search pattern in a specified path.

EnumerateFileSystemEntries(String, String, EnumerationOptions)

지정된 경로에서 검색 패턴 및 열거형 옵션과 일치하는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환합니다.Returns an enumerable collection of file names and directory names that match a search pattern and enumeration options in a specified path.

EnumerateFileSystemEntries(String, String, SearchOption)

지정된 경로에서 검색 패턴과 일치하는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다.Returns an enumerable collection of file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories.

Exists(String)

지정된 경로가 디스크에 있는 기존 디렉터리를 참조하는지를 확인합니다.Determines whether the given path refers to an existing directory on disk.

GetAccessControl(String)

지정된 디렉터리의 ACL(액세스 제어 목록) 항목을 캡슐화하는 DirectorySecurity 개체를 가져옵니다.Gets a DirectorySecurity object that encapsulates the access control list (ACL) entries for a specified directory.

GetAccessControl(String, AccessControlSections)

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

GetCreationTime(String)

디렉터리를 만든 날짜와 시간을 가져옵니다.Gets the creation date and time of a directory.

GetCreationTimeUtc(String)

디렉터리를 만든 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 가져옵니다.Gets the creation date and time, in Coordinated Universal Time (UTC) format, of a directory.

GetCurrentDirectory()

애플리케이션의 현재 작업 디렉터리를 가져옵니다.Gets the current working directory of the application.

GetDirectories(String)

지정된 디렉터리에 있는 하위 디렉터리의 이름(경로 포함)을 반환합니다.Returns the names of subdirectories (including their paths) in the specified directory.

GetDirectories(String, String)

지정된 디렉터리에서 지정된 검색 패턴과 일치하는 하위 디렉터리 이름(파일 경로 포함)을 반환합니다.Returns the names of subdirectories (including their paths) that match the specified search pattern in the specified directory.

GetDirectories(String, String, EnumerationOptions)

지정된 디렉터리에서 지정된 검색 패턴 및 열거형 옵션과 일치하는 하위 디렉터리 이름(파일 경로 포함)을 반환합니다.Returns the names of subdirectories (including their paths) that match the specified search pattern and enumeration options in the specified directory.

GetDirectories(String, String, SearchOption)

지정된 디렉터리에서 지정된 검색 패턴과 일치하는 하위 디렉터리(해당 경로 포함)의 이름을 가져오고 선택적으로 하위 디렉터리를 반환합니다.Returns the names of the subdirectories (including their paths) that match the specified search pattern in the specified directory, and optionally searches subdirectories.

GetDirectoryRoot(String)

지정된 경로에 대한 볼륨 정보, 루트 정보 또는 두 정보 모두를 반환합니다.Returns the volume information, root information, or both for the specified path.

GetFiles(String)

지정된 디렉터리에 있는 파일의 이름(경로 포함)을 반환합니다.Returns the names of files (including their paths) in the specified directory.

GetFiles(String, String)

지정된 디렉터리에서 지정된 검색 패턴과 일치하는 파일 이름(파일 경로 포함)을 반환합니다.Returns the names of files (including their paths) that match the specified search pattern in the specified directory.

GetFiles(String, String, EnumerationOptions)

지정된 디렉터리에서 지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 이름(파일 경로 포함)을 반환합니다.Returns the names of files (including their paths) that match the specified search pattern and enumeration options in the specified directory.

GetFiles(String, String, SearchOption)

하위 디렉터리를 검색할지를 나타내는 값을 사용하여 지정된 디렉터리에서 지정된 검색 패턴과 일치하는 파일 이름(파일 경로 포함)을 반환합니다.Returns the names of files (including their paths) that match the specified search pattern in the specified directory, using a value to determine whether to search subdirectories.

GetFileSystemEntries(String)

지정된 경로에 있는 모든 파일과 하위 디렉터리의 이름을 반환합니다.Returns the names of all files and subdirectories in a specified path.

GetFileSystemEntries(String, String)

지정된 경로에서 검색 패턴과 일치하는 파일 및 디렉터리 이름 배열을 반환합니다.Returns an array of file names and directory names that match a search pattern in a specified path.

GetFileSystemEntries(String, String, EnumerationOptions)

지정된 경로에서 검색 패턴 및 열거형 옵션과 일치하는 파일 이름 및 디렉터리 이름의 배열을 반환합니다.Returns an array of file names and directory names that match a search pattern and enumeration options in a specified path.

GetFileSystemEntries(String, String, SearchOption)

지정된 경로에서 검색 패턴과 일치하는 모든 파일 이름 및 디렉터리 이름의 배열을 가져오고 선택적으로 하위 디렉터리를 반환합니다.Returns an array of all the file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories.

GetLastAccessTime(String)

지정된 파일 또는 디렉터리를 마지막으로 액세스한 날짜와 시간을 반환합니다.Returns the date and time the specified file or directory was last accessed.

GetLastAccessTimeUtc(String)

지정된 파일 또는 디렉터리에 마지막으로 액세스한 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 반환합니다.Returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed.

GetLastWriteTime(String)

지정된 파일 또는 디렉터리를 마지막으로 쓴 날짜와 시간을 반환합니다.Returns the date and time the specified file or directory was last written to.

GetLastWriteTimeUtc(String)

지정된 파일이나 디렉터리에 마지막으로 쓴 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 반환합니다.Returns the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last written to.

GetLogicalDrives()

해당 컴퓨터에서 "<드라이브 문자>:\"의 형식으로 논리 드라이브 이름을 검색합니다.Retrieves the names of the logical drives on this computer in the form "<drive letter>:\".

GetParent(String)

지정된 경로의 절대 경로와 상대 경로를 모두 포함한 부모 디렉터리를 검색합니다.Retrieves the parent directory of the specified path, including both absolute and relative paths.

Move(String, String)

파일 또는 디렉터리와 그 내용을 새 위치로 이동합니다.Moves a file or a directory and its contents to a new location.

SetAccessControl(String, DirectorySecurity)

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

SetCreationTime(String, DateTime)

지정된 파일 또는 디렉터리에 대한 만든 날짜와 시간을 설정합니다.Sets the creation date and time for the specified file or directory.

SetCreationTimeUtc(String, DateTime)

지정된 파일이나 디렉터리를 만든 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다.Sets the creation date and time, in Coordinated Universal Time (UTC) format, for the specified file or directory.

SetCurrentDirectory(String)

애플리케이션의 현재 작업 디렉터리를 지정된 디렉터리로 설정합니다.Sets the application's current working directory to the specified directory.

SetLastAccessTime(String, DateTime)

지정된 파일 또는 디렉터리를 마지막으로 액세스한 날짜와 시간을 설정합니다.Sets the date and time the specified file or directory was last accessed.

SetLastAccessTimeUtc(String, DateTime)

지정된 파일 또는 디렉터리에 마지막으로 액세스한 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다.Sets the date and time, in Coordinated Universal Time (UTC) format, that the specified file or directory was last accessed.

SetLastWriteTime(String, DateTime)

디렉터리를 마지막으로 쓴 날짜와 시간을 설정합니다.Sets the date and time a directory was last written to.

SetLastWriteTimeUtc(String, DateTime)

디렉터리에 마지막으로 쓴 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다.Sets the date and time, in Coordinated Universal Time (UTC) format, that a directory was last written to.

적용 대상

추가 정보