Directory 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
디렉터리와 하위 디렉터리에서 만들기, 이동 및 열거를 위한 정적 메서드를 노출합니다. 이 클래스는 상속될 수 없습니다.
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
[<System.Runtime.InteropServices.ComVisible(true)>]
type Directory = class
Public Class Directory
Public NotInheritable Class Directory
- 상속
-
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);
}
}
}
}
open System.IO
let sourceDirectory = @"C:\current"
let archiveDirectory = @"C:\archive"
try
let txtFiles = Directory.EnumerateFiles(sourceDirectory, "*.txt")
for currentFile in txtFiles do
let fileName = currentFile.Substring(sourceDirectory.Length + 1)
Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName))
with e ->
printfn $"{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 디렉터리에서 텍스트 파일 컬렉션을 검색한 다음 쿼리에서 해당 컬렉션을 사용하여 "예제"가 포함된 모든 줄을 찾는 방법을 보여 줍니다.
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());
}
}
}
open System.IO
let archiveDirectory = @"C:\archive"
let files =
query {
for retrivedFile in Directory.EnumerateFiles(archiveDirectory, "*.txt", SearchOption.AllDirectories) do
for line in File.ReadLines retrivedFile do
where (line.Contains "file")
select
{| File = retrivedFile
Line = line |}
}
for f in files do
printfn $"{f.File} contains {f.Line}"
printfn "{Seq.length files} lines found."
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
다음 예제에서는 디렉터리와 모든 해당 파일을 새 디렉터리로 이동하는 방법을 보여 줍니다. 원래 디렉터리는 이동된 후 더 이상 존재하지 않습니다.
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);
}
}
}
}
open System.IO
let sourceDirectory = @"C:\source"
let destinationDirectory = @"C:\destination"
try
Directory.Move(sourceDirectory, destinationDirectory)
with e ->
printfn $"{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 디렉터리 복사, 이동, 이름 바꾸기, 만들기 및 삭제와 같은 일반적인 작업에는 클래스를 사용합니다.
디렉터리를 만들려면 메서드 중 CreateDirectory 하나를 사용합니다.
디렉터리를 삭제하려면 메서드 중 Delete 하나를 사용합니다.
앱의 현재 디렉터리를 다운로드하거나 설정하려면 또는 SetCurrentDirectory 메서드를 GetCurrentDirectory 사용합니다.
디렉터리의 생성, 액세스 및 쓰기와 관련된 정보를 조작 DateTime 하려면 및 SetCreationTime와 같은 SetLastAccessTime 메서드를 사용합니다.
클래스의 Directory 정적 메서드는 모든 메서드에 대한 보안 검사를 수행합니다. 개체를 여러 번 다시 사용하려는 경우 보안 검사 항상 필요한 것은 아니므로 해당 instance 메서드 DirectoryInfo 를 대신 사용하는 것이 좋습니다.
디렉터리 관련 작업을 하나만 수행하는 경우 해당 DirectoryInfo instance 메서드보다는 정적 Directory 메서드를 사용하는 것이 더 효율적일 수 있습니다. 대부분의 Directory 메서드에는 조작하는 디렉터리의 경로가 필요합니다.
참고
문자열 path
매개 변수를 수락하는 멤버에서 해당 경로는 올바른 형식이어야 합니다. 그렇지 않으면 예외가 발생합니다. 예를 들어 경로가 정규화되었지만 공백("c:\temp")으로 시작하는 경우 경로 문자열이 트리밍되지 않으므로 경로가 잘못된 형식으로 간주되고 예외가 발생합니다. 또한 경로 또는 경로 조합을 두 번 정규화할 수 없습니다. 예를 들어 "c:\temp c:\windows"도 예외를 발생합니다. 경로 문자열을 허용하는 메서드를 사용할 때 경로가 올바른 형식인지 확인합니다. 자세한 내용은 Path를 참조하세요.
경로를 수락하는 멤버에서 경로는 파일 또는 디렉터리를 참조할 수 있습니다. 서버 및 공유 이름에 대해 전체 경로, 상대 경로 또는 UNC(범용 명명 규칙) 경로를 사용할 수 있습니다. 예를 들어 다음 모두 허용되는 경로입니다.
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\ 및 모든 하위 디렉터리에 대한 액세스 권한을 부여합니다. 특정 디렉터리에 대해서만 사용 권한을 요구하려면 경로 문자열을 마침표로 종료합니다. 예를 들어 "C:\Temp\."는 해당 하위 디렉터리가 아닌 C:\Temp\에만 액세스 권한을 부여합니다.
매개 변수를 searchPattern
수락하는 멤버에서 검색 문자열은 리터럴 문자와 와일드카드 문자 2개( * 및 ?)의 조합일 수 있습니다. 이 매개 변수는 정규식을 인식하지 못합니다. 자세한 내용은 메서드 또는 매개 변수를 EnumerateDirectories(String, String) 사용하는 다른 메서드를 searchPattern
참조하세요.
일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.
Directory 및 DirectoryInfo 는 Windows 스토어 앱에서 사용할 수 없습니다. Windows 스토어 앱에서 파일 및 폴더에 액세스하는 방법에 대한 자세한 내용은 데이터 및 파일 액세스(Windows 스토어 앱)를 참조하세요.
메서드
CreateDirectory(String) |
이미 존재하지 않는 한 지정된 경로에 모든 디렉터리와 하위 디렉터리를 만듭니다. |
CreateDirectory(String, DirectorySecurity) |
이미 존재하지 않는 경우 지정된 경로에 모든 디렉터리를 만들고 지정된 Windows 보안을 적용합니다. |
CreateDirectory(String, UnixFileMode) |
지정된 권한이 없는 한 지정된 경로에 모든 디렉터리 및 하위 디렉터리를 만듭니다. |
CreateSymbolicLink(String, String) |
를 가리키는 |
CreateTempSubdirectory(String) |
현재 사용자의 임시 디렉터리에 고유하게 명명된 빈 디렉터리를 만듭니다. |
Delete(String) |
지정된 경로에서 빈 디렉터리를 삭제합니다. |
Delete(String, Boolean) |
지정된 디렉터리와 해당 디렉터리의 하위 디렉터리 및 파일을 삭제합니다. |
EnumerateDirectories(String) |
지정된 경로에 있는 디렉터리 전체 이름의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories(String, String) |
지정된 경로에서 검색 패턴과 일치하는 디렉터리 전체 이름의 열거 가능 컬렉션을 반환합니다. |
EnumerateDirectories(String, String, EnumerationOptions) |
지정된 경로에서 검색 패턴과 일치하는 디렉터리 전체 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다. |
EnumerateDirectories(String, String, SearchOption) |
지정된 경로에서 검색 패턴과 일치하는 디렉터리 전체 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다. |
EnumerateFiles(String) |
지정된 경로에 있는 전체 파일 이름의 열거 가능 컬렉션을 반환합니다. |
EnumerateFiles(String, String) |
지정된 경로에서 검색 패턴과 일치하는 전체 파일 이름의 열거 가능 컬렉션을 반환합니다. |
EnumerateFiles(String, String, EnumerationOptions) |
지정된 경로에서 검색 패턴 및 열거형 옵션과 일치하는 전체 파일 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다. |
EnumerateFiles(String, String, SearchOption) |
지정된 경로에서 검색 패턴과 일치하는 전체 파일 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다. |
EnumerateFileSystemEntries(String) |
지정된 경로에 있는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환합니다. |
EnumerateFileSystemEntries(String, String) |
지정된 경로에서 검색 패턴과 일치하는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환합니다. |
EnumerateFileSystemEntries(String, String, EnumerationOptions) |
지정된 경로에서 검색 패턴 및 열거형 옵션과 일치하는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환합니다. |
EnumerateFileSystemEntries(String, String, SearchOption) |
지정된 경로에서 검색 패턴과 일치하는 파일 이름 및 디렉터리 이름의 열거 가능 컬렉션을 반환하고 선택적으로 하위 디렉터리를 검색합니다. |
Exists(String) |
지정된 경로가 디스크에 있는 기존 디렉터리를 참조하는지를 확인합니다. |
GetAccessControl(String) |
지정된 디렉터리의 ACL(액세스 제어 목록) 항목을 캡슐화하는 DirectorySecurity 개체를 가져옵니다. |
GetAccessControl(String, AccessControlSections) |
지정된 디렉터리의 지정된 ACL(액세스 제어 목록) 항목 형식을 캡슐화하는 DirectorySecurity 개체를 가져옵니다. |
GetCreationTime(String) |
디렉터리를 만든 날짜와 시간을 가져옵니다. |
GetCreationTimeUtc(String) |
디렉터리를 만든 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 가져옵니다. |
GetCurrentDirectory() |
애플리케이션의 현재 작업 디렉터리를 가져옵니다. |
GetDirectories(String) |
지정된 디렉터리에 있는 하위 디렉터리의 이름(경로 포함)을 반환합니다. |
GetDirectories(String, String) |
지정된 디렉터리에서 지정된 검색 패턴과 일치하는 하위 디렉터리 이름(파일 경로 포함)을 반환합니다. |
GetDirectories(String, String, EnumerationOptions) |
지정된 디렉터리에서 지정된 검색 패턴 및 열거형 옵션과 일치하는 하위 디렉터리 이름(파일 경로 포함)을 반환합니다. |
GetDirectories(String, String, SearchOption) |
지정된 디렉터리에서 지정된 검색 패턴과 일치하는 하위 디렉터리(해당 경로 포함)의 이름을 가져오고 선택적으로 하위 디렉터리를 반환합니다. |
GetDirectoryRoot(String) |
지정된 경로에 대한 볼륨 정보, 루트 정보 또는 두 정보 모두를 반환합니다. |
GetFiles(String) |
지정된 디렉터리에 있는 파일의 이름(경로 포함)을 반환합니다. |
GetFiles(String, String) |
지정된 디렉터리에서 지정된 검색 패턴과 일치하는 파일 이름(파일 경로 포함)을 반환합니다. |
GetFiles(String, String, EnumerationOptions) |
지정된 디렉터리에서 지정된 검색 패턴 및 열거형 옵션과 일치하는 파일 이름(파일 경로 포함)을 반환합니다. |
GetFiles(String, String, SearchOption) |
하위 디렉터리를 검색할지를 나타내는 값을 사용하여 지정된 디렉터리에서 지정된 검색 패턴과 일치하는 파일 이름(파일 경로 포함)을 반환합니다. |
GetFileSystemEntries(String) |
지정된 경로에 있는 모든 파일과 하위 디렉터리의 이름을 반환합니다. |
GetFileSystemEntries(String, String) |
지정된 경로에서 검색 패턴과 일치하는 파일 및 디렉터리 이름 배열을 반환합니다. |
GetFileSystemEntries(String, String, EnumerationOptions) |
지정된 경로에서 검색 패턴 및 열거형 옵션과 일치하는 파일 이름 및 디렉터리 이름의 배열을 반환합니다. |
GetFileSystemEntries(String, String, SearchOption) |
지정된 경로에서 검색 패턴과 일치하는 모든 파일 이름 및 디렉터리 이름의 배열을 가져오고 선택적으로 하위 디렉터리를 반환합니다. |
GetLastAccessTime(String) |
지정된 파일 또는 디렉터리를 마지막으로 액세스한 날짜와 시간을 반환합니다. |
GetLastAccessTimeUtc(String) |
지정된 파일 또는 디렉터리에 마지막으로 액세스한 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 반환합니다. |
GetLastWriteTime(String) |
지정된 파일 또는 디렉터리를 마지막으로 쓴 날짜와 시간을 반환합니다. |
GetLastWriteTimeUtc(String) |
지정된 파일이나 디렉터리에 마지막으로 쓴 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 반환합니다. |
GetLogicalDrives() |
이 컴퓨터의 논리 드라이브 이름을 "<drive letter>:\" 형식으로 검색합니다. |
GetParent(String) |
지정된 경로의 절대 경로와 상대 경로를 모두 포함한 부모 디렉터리를 검색합니다. |
Move(String, String) |
파일 또는 디렉터리와 그 내용을 새 위치로 이동합니다. |
ResolveLinkTarget(String, Boolean) |
지정된 디렉터리 링크의 대상을 가져옵니다. |
SetAccessControl(String, DirectorySecurity) |
DirectorySecurity 개체에서 설명하는 ACL(액세스 제어 목록) 항목을 지정된 디렉터리에 적용합니다. |
SetCreationTime(String, DateTime) |
지정된 파일 또는 디렉터리에 대한 만든 날짜와 시간을 설정합니다. |
SetCreationTimeUtc(String, DateTime) |
지정된 파일이나 디렉터리를 만든 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다. |
SetCurrentDirectory(String) |
애플리케이션의 현재 작업 디렉터리를 지정된 디렉터리로 설정합니다. |
SetLastAccessTime(String, DateTime) |
지정된 파일 또는 디렉터리를 마지막으로 액세스한 날짜와 시간을 설정합니다. |
SetLastAccessTimeUtc(String, DateTime) |
지정된 파일 또는 디렉터리에 마지막으로 액세스한 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다. |
SetLastWriteTime(String, DateTime) |
디렉터리를 마지막으로 쓴 날짜와 시간을 설정합니다. |
SetLastWriteTimeUtc(String, DateTime) |
디렉터리에 마지막으로 쓴 날짜와 시간을 UTC(Coordinated Universal Time) 형식으로 설정합니다. |
적용 대상
추가 정보
.NET