다음을 통해 공유


.NET Framework 파일 I/O 및 파일 시스템의 기본 사항

업데이트: 2007년 11월

System.IO 네임스페이스에는 파일과 디렉터리를 조작하는 .NET Framework 기능을 제공하는 FileDirectory 클래스가 포함되어 있습니다. 이들 개체의 메서드는 정적 또는 공유 멤버이므로 먼저 클래스의 인스턴스를 만들지 않고도 직접 메서드를 사용할 수 있습니다. 이들 클래스에는 My 기능 사용자에게는 익숙한 FileInfoDirectoryInfo 클래스가 연관되어 있습니다. 이들 클래스를 사용하려면 관련 코드의 시작 부분에 Imports 문을 넣어서 적절한 네임스페이스를 가져오거나 이름을 정규화해야 합니다. 자세한 내용은 Imports 문(.NET 네임스페이스 및 형식)을 참조하십시오.

스트림 정의

.NET Framework에서는 스트림을 사용하여 파일의 읽기와 쓰기를 지원합니다. 스트림은 시작과 끝이 있고 커서가 스트림에서의 현재 위치를 나타내는 1차원의 연속적인 데이터 집합으로 생각할 수 있습니다.

FileStream의 현재 위치를 보여 주는 커서

스트림 작업

스트림에 포함된 데이터는 메모리, 파일 또는 TCP/IP 소켓으로부터 온 데이터일 수 있습니다. 스트림에는 다음의 기본 작업을 적용할 수 있습니다.

  • 읽기. 데이터를 스트림에서 문자열 또는 바이트 배열과 같은 데이터 구조체로 전송하여 스트림을 읽을 수 있습니다.

  • 쓰기. 데이터를 데이터 소스에서 스트림으로 전송하여 스트림에 쓸 수 있습니다.

  • 찾기. 스트림에서 현재 위치를 쿼리하고 수정할 수 있습니다.

자세한 내용은 스트림 작성을 참조하십시오.

스트림 종류

.NET Framework에서 스트림은 다른 모든 스트림의 추상 클래스가 되는 Stream 클래스로 표현됩니다. Stream 클래스의 인스턴스를 직접 만들 수 없지만 이 클래스가 구현하는 클래스 중 하나를 사용해야 합니다.

여러 종류의 스트림이 있지만 파일 입/출력(I/O) 작업에 가장 중요한 클래스는 파일을 읽고 쓰는 방법을 제공하는 FileStream 클래스와 격리된 저장소에 파일과 디렉터리를 만드는 방법을 제공하는 IsolatedStorageFileStream 클래스입니다. 파일 I/O 작업에 사용할 수 있는 다른 스트림에는 다음이 포함됩니다.

다음 표에서는 스트림을 사용하여 일반적으로 수행하는 작업을 나열합니다.

작업

참조

데이터 파일 읽기와 쓰기

방법: 새로 만든 데이터 파일 읽기 및 쓰기

XML 파일에서 읽기

일반적인 XmlReader 작업

파일에 텍스트를 쓰기 위한 스트림 작성기 만들기

작성기 만들기

파일에서 텍스트 읽기

방법: 파일의 텍스트 읽기

파일에 텍스트 쓰기

방법: 파일에 텍스트 쓰기

문자열에서 문자 읽기

방법: 문자열에서 문자 읽기

문자열에 문자 쓰기

방법: 문자열에 문자 쓰기

데이터 암호화

데이터 암호화

데이터 해독

데이터 해독

파일 액세스 및 특성

FileStream 클래스의 생성자에서 사용하는 플래그가 들어 있는 FileAccess, FileModeFileShare 열거형으로 파일을 만들고, 열고, 공유하는 방법을 제어할 수 있습니다. 예를 들어, 새 FileStream을 열거나 만들 때 FileMode 열거형을 사용하면 파일을 추가용으로 열 것인지 여부, 지정된 파일이 없을 때 새 파일을 만들 것인지 여부, 파일을 덮어쓸 것인지 여부 등을 지정할 수 있습니다.

FileAttributes 열거형을 통해서는 파일 관련 정보를 수집할 수 있습니다. FileAttributes 열거형은 해당 파일이 압축되어 있는지, 암호화되어 있는지, 숨겨져 있는지, 읽기 전용인지, 보관 파일인지, 디렉터리인지, 시스템 파일인지, 임시 파일인지와 같은 파일의 저장 특성을 반환합니다.

다음 표에서는 파일 액세스와 파일 특성에 관련된 작업을 나열합니다.

작업

참조

로그 파일을 열고 텍스트 추가

방법: 로그 파일 열기 및 추가

파일의 특성 확인

FileAttributes

파일 사용 권한

FileIOPermission 클래스를 사용하면 파일과 디렉터리에 대한 액세스를 제어할 수 있습니다. ASP.NET과 .NET Framework를 설치할 때 만들어지는 ASPNET이라는 특별한 로컬 사용자 계정의 컨텍스트 내에서 기본적으로 실행되는 Web Forms을 사용하는 개발자에게 이 클래스는 특히 중요합니다. 이러한 응용 프로그램에서 리소스에 대한 액세스를 요청할 경우 ASPNET 사용자 계정은 권한이 제한되어 있기 때문에 웹 응용 프로그램에서 파일에 쓰는 등의 작업을 수행하지 못할 수 있습니다. 자세한 내용은 보안 권한, 권한 요청FileIOPermission 클래스를 참조하십시오.

다음 표에서는 파일 사용 권한에 관련된 작업을 나열합니다.

작업

참조

최소 권한 요청

방법: 비관리 코드 액세스 권한 요청

선택적 권한 요청

방법: RequestOptional 플래그를 사용하여 선택적 권한 요청

권한 거부

방법: RequestRefuse 플래그를 사용하여 권한 거부

기본 제공 권한 요청

방법: 명명된 권한 집합에 대한 권한 요청

XML로 인코딩된 권한 요청

XML로 인코딩된 권한 요청

격리된 파일 저장소

격리된 저장소는 작업할 파일에 대해 사용자나 코드에 필요한 권한이 없는 경우 발생하는 문제를 해결하기 위해 사용합니다. 격리된 저장소는 각 사용자에게 하나 이상의 저장소를 포함할 수 있는 데이터 구획을 할당합니다. 저장소는 사용자 및 어셈블리별로 서로 격리될 수 있습니다. 저장소를 만든 사용자와 어셈블리만 해당 저장소에 액세스할 수 있습니다. 저장소는 완전한 가상 파일 시스템처럼 작동합니다. 즉, 한 저장소 내에서 디렉터리와 파일을 만들고 조작할 수 있습니다.

다음 표에서는 격리된 파일 저장소와 일반적으로 관련된 작업을 나열합니다.

작업

참조

격리된 저장소 만들기

방법: 격리된 저장소의 저장소 가져오기

격리된 저장소 열거

방법: 격리된 저장소의 저장소 열거

격리된 저장소 삭제

방법: 격리된 저장소에서 저장소 삭제

격리된 저장소에 파일이나 디렉터리 만들기

방법: 격리된 저장소에 파일 및 디렉터리 만들기

격리된 저장소에서 파일 찾기

방법: 격리된 저장소의 기존 파일 및 디렉터리 찾기

격리된 저장소에서 파일 읽기 또는 쓰기

방법: 격리된 저장소의 파일 읽기 및 쓰기

격리된 저장소에서 파일 또는 디렉터리 삭제

방법: 격리된 저장소의 파일 및 디렉터리 삭제

파일 이벤트

FileSystemWatcher 구성 요소를 사용하면 자신의 시스템 또는 네트워크 액세스 권한을 갖고 있는 모든 컴퓨터에 있는 파일과 디렉터리의 변경 내용을 감시할 수 있습니다. 예를 들어, 파일이 수정되면 사용자에게 변경이 발생했다는 경고를 보낼 수 있습니다. 변경이 발생하면 하나 이상의 이벤트가 발생하고 버퍼에 저장된 다음 FileSystemWatcher 구성 요소로 전달되어 처리됩니다. 자세한 내용은 파일 시스템 이벤트에 반응을 참조하십시오.

작업

참조

파일 시스템 이벤트에 대한 처리기 만들기

방법: 파일 시스템 이벤트 처리기 만들기

FileSystemWatcher 구성 요소 인스턴스 구성

방법: FileSystemWatcher 구성 요소 인스턴스 구성

참고 항목

개념

스트림 작성

기본 파일 I/O

비동기 파일 I/O

.NET Framework 파일 I/O 및 파일 시스템에 사용되는 클래스

기타 리소스

격리된 저장소