File 클래스

정의

단일 파일에 대한 만들기, 복사, 삭제, 이동 및 열기를 위한 정적 메서드를 제공하고 FileStream 개체 만들기를 지원합니다.

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

예제

다음 예제에서는 클래스를 사용하여 File 파일이 있는지 여부를 확인하고 결과에 따라 새 파일을 만들고 파일을 쓰거나 기존 파일을 열고 파일을 읽는 방법을 보여 줍니다. 코드를 실행하기 전에 폴더를 만듭니다 c:\temp .

using namespace System;
using namespace System::IO;
int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   if (  !File::Exists( path ) )
   {
      
      // Create a file to write to.
      StreamWriter^ sw = File::CreateText( path );
      try
      {
         sw->WriteLine( "Hello" );
         sw->WriteLine( "And" );
         sw->WriteLine( "Welcome" );
      }
      finally
      {
         if ( sw )
                  delete (IDisposable^)(sw);
      }
   }

   // Open the file to read from.
   StreamReader^ sr = File::OpenText( path );
   try
   {
      String^ s = "";
      while ( s = sr->ReadLine() )
      {
         Console::WriteLine( s );
      }
   }
   finally
   {
      if ( sr )
            delete (IDisposable^)(sr);
   }

   try
   {
      String^ path2 = String::Concat( path, "temp" );
      
      // Ensure that the target does not exist.
      File::Delete( path2 );
      
      // Copy the file.
      File::Copy( path, path2 );
      Console::WriteLine( "{0} was copied to {1}.", path, path2 );
      
      // Delete the newly created file.
      File::Delete( path2 );
      Console::WriteLine( "{0} was successfully deleted.", path2 );
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }
}
using System;
using System.IO;

class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";
        if (!File.Exists(path))
        {
            // Create a file to write to.
            using (StreamWriter sw = File.CreateText(path))
            {
                sw.WriteLine("Hello");
                sw.WriteLine("And");
                sw.WriteLine("Welcome");
            }
        }

        // Open the file to read from.
        using (StreamReader sr = File.OpenText(path))
        {
            string s;
            while ((s = sr.ReadLine()) != null)
            {
                Console.WriteLine(s);
            }
        }
    }
}
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        If File.Exists(path) = False Then
            ' Create a file to write to.
            Using sw As StreamWriter = File.CreateText(path)
                sw.WriteLine("Hello")
                sw.WriteLine("And")
                sw.WriteLine("Welcome")
           End Using
        End If

        ' Open the file to read from.
        Using sr As StreamReader = File.OpenText(path)
            Do While sr.Peek() >= 0
                Console.WriteLine(sr.ReadLine())
            Loop
        End Using
    End Sub
End Class

설명

File 한 번에 단일 파일에 복사, 이동, 이름 바꾸기, 만들기, 열기, 삭제 및 추가와 같은 일반적인 작업에 클래스를 사용합니다. 클래스를 File 사용하여 파일 생성, 액세스 및 쓰기와 관련된 파일 특성 또는 DateTime 정보를 가져와서 설정할 수도 있습니다. 여러 파일에 대한 작업을 수행하려면 다음을 참조 Directory.GetFiles 하세요 DirectoryInfo.GetFiles.

대부분의 메서드는 File 파일을 만들거나 열 때 다른 I/O 형식을 반환합니다. 이러한 다른 형식을 사용하여 파일을 추가로 조작할 수 있습니다. 자세한 내용은 특정 File 멤버(예: OpenText, CreateText또는 Create)를 참조하세요.

모든 File 메서드는 정적이므로 하나의 작업만 수행하려는 경우 해당 FileInfo 인스턴스 메서드가 아닌 메서드를 사용하는 File 것이 더 효율적일 수 있습니다. 모든 File 메서드에는 조작하는 파일의 경로가 필요합니다.

클래스의 File 정적 메서드는 모든 메서드에 대해 보안 검사를 수행합니다. 개체를 여러 번 다시 사용하려는 경우 보안 검사가 항상 필요한 것은 아니므로 해당 인스턴스 메서드 FileInfo 를 대신 사용하는 것이 좋습니다.

기본적으로 새 파일에 대한 전체 읽기/쓰기 액세스 권한은 모든 사용자에게 부여됩니다.

다음 표에서는 다양한 File 메서드의 동작을 사용자 지정하는 데 사용되는 열거형에 대해 설명합니다.

열거형 설명
FileAccess 파일에 대한 읽기 및 쓰기 액세스를 지정합니다.
FileShare 이미 사용 중인 파일에 허용되는 액세스 수준을 지정합니다.
FileMode 기존 파일의 내용을 보존할지 또는 덮어쓸지 여부와 기존 파일을 만들기 위한 요청으로 인해 예외가 발생하는지 여부를 지정합니다.

참고

경로를 입력 문자열로 허용하는 멤버에서 해당 경로는 올바른 형식이어야 합니다. 그렇지 않으면 예외가 발생합니다. 예를 들어 경로가 정규화되었지만 공백으로 시작하는 경우 경로는 클래스의 메서드에서 잘리지 않습니다. 따라서 경로 형식이 잘못되고 예외가 발생합니다. 마찬가지로 경로 또는 경로 조합은 두 번 정규화할 수 없습니다. 예를 들어 "c:\temp c:\windows"는 대부분의 경우 예외를 발생합니다. 경로 문자열을 허용하는 메서드를 사용할 때 경로가 올바른 형식인지 확인합니다.

경로를 허용하는 멤버에서 경로는 파일 또는 디렉터리를 참조할 수 있습니다. 지정된 경로는 서버 및 공유 이름에 대한 상대 경로 또는 UNC(범용 명명 규칙) 경로를 참조할 수도 있습니다. 예를 들어 다음의 모든 경로는 허용 가능한 경로입니다.

  • "c:\\\MyDir\\\MyFile.txt" C#에서 또는 "c:\MyDir\MyFile.txt" Visual Basic에서

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

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

  • "\\\\\\\MyServer\\\MyShare" C#에서 또는 "\\\MyServer\MyShare" Visual Basic에서

일반적인 I/O 작업 목록은 일반적인 I/O 작업을 참조하세요.

메서드

AppendAllLines(String, IEnumerable<String>)

파일에 줄을 추가한 다음 파일을 닫습니다. 지정한 파일이 없는 경우 이 메서드는 파일을 만들고 지정된 줄을 파일에 쓴 다음 파일을 닫습니다.

AppendAllLines(String, IEnumerable<String>, Encoding)

지정된 인코딩을 사용하여 파일에 줄을 추가한 다음 파일을 닫습니다. 지정한 파일이 없는 경우 이 메서드는 파일을 만들고 지정된 줄을 파일에 쓴 다음 파일을 닫습니다.

AppendAllLinesAsync(String, IEnumerable<String>, CancellationToken)

파일에 비동기식으로 줄을 추가한 다음 파일을 닫습니다. 지정한 파일이 없는 경우 이 메서드는 파일을 만들고 지정된 줄을 파일에 쓴 다음 파일을 닫습니다.

AppendAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken)

지정된 인코딩을 사용하여 비동기식으로 파일에 줄을 추가한 다음 파일을 닫습니다. 지정한 파일이 없는 경우 이 메서드는 파일을 만들고 지정된 줄을 파일에 쓴 다음 파일을 닫습니다.

AppendAllText(String, String)

파일을 열고 지정된 문자열을 파일에 추가한 다음 파일을 닫습니다. 파일이 없는 경우 이 메서드는 파일을 만들고 지정된 문자열을 파일에 쓴 다음 파일을 닫습니다.

AppendAllText(String, String, Encoding)

지정된 인코딩을 사용하여 지정된 문자열을 파일에 추가하며, 파일이 없는 경우 파일을 생성합니다.

AppendAllTextAsync(String, String, CancellationToken)

파일이 없는 경우 비동기식으로 파일을 열거나 파일을 만든 다음, 지정된 문자열을 파일에 추가한 후 파일을 닫습니다.

AppendAllTextAsync(String, String, Encoding, CancellationToken)

파일이 아직 없는 경우 비동기식으로 파일을 열거나 파일을 만든 다음, 지정된 인코딩을 사용하여 지정된 문자열을 파일에 추가한 후 파일을 닫습니다.

AppendText(String)

기존 파일 또는 지정된 파일이 존재하지 않는 경우 새 파일에 UTF-8 인코딩된 텍스트를 추가하는 StreamWriter를 만듭니다.

Copy(String, String)

새 파일에 기존 파일을 복사합니다. 같은 이름의 파일을 덮어쓸 수는 없습니다.

Copy(String, String, Boolean)

새 파일에 기존 파일을 복사합니다. 같은 이름의 파일을 덮어쓸 수 있습니다.

Create(String)

지정된 경로에 파일을 만들거나 지정된 경로의 파일을 덮어씁니다.

Create(String, Int32)

지정된 경로에 파일을 만들거나 덮어써서 버퍼 크기를 지정합니다.

Create(String, Int32, FileOptions)

지정된 경로에 파일을 만들거나 덮어써서 버퍼 크기와 파일을 만들거나 덮어쓰는 방법을 설명하는 옵션을 지정합니다.

Create(String, Int32, FileOptions, FileSecurity)

지정된 경로에 파일을 만들거나 덮어써서 버퍼 크기, 파일을 만들거나 덮어쓰는 방법을 설명하는 옵션 그리고 파일에 대한 액세스 제어 및 감사 보안을 결정하는 값을 지정합니다.

CreateSymbolicLink(String, String)

해당 지점pathToTarget으로 식별되는 path 파일 기호 링크를 만듭니다.

CreateText(String)

UTF-8로 인코딩된 텍스트를 쓰기 위해 파일을 만들거나 엽니다. 파일이 이미 있으면 해당 콘텐츠를 덮어씁니다.

Decrypt(String)

현재 계정으로 Encrypt(String) 메서드를 통해 암호화된 파일을 해독합니다.

Delete(String)

지정한 파일을 삭제합니다.

Encrypt(String)

파일을 암호화하는 데 사용된 계정으로만 해독할 수 있도록 암호화합니다.

Exists(String)

지정된 파일이 있는지를 확인합니다.

GetAccessControl(String)

지정된 파일에 대한 ACL(액세스 제어 목록) 항목을 캡슐화하는 FileSecurity 개체를 가져옵니다.

GetAccessControl(String, AccessControlSections)

특정 파일에 대해 지정된 형식의 ACL(액세스 제어 목록) 항목을 캡슐화하는 FileSecurity 개체를 가져옵니다.

GetAttributes(String)

경로에 있는 파일의 FileAttributes를 가져옵니다.

GetCreationTime(String)

지정된 파일 또는 디렉터리의 만든 날짜와 시간을 반환합니다.

GetCreationTimeUtc(String)

지정된 파일이나 디렉터리를 만든 날짜와 시간을 UTC 기준으로 반환합니다.

GetLastAccessTime(String)

지정된 파일 또는 디렉터리를 마지막으로 액세스한 날짜와 시간을 반환합니다.

GetLastAccessTimeUtc(String)

지정된 파일 또는 디렉터리를 마지막으로 액세스한 날짜와 시간을 UTC 기준으로 반환합니다.

GetLastWriteTime(String)

지정된 파일 또는 디렉터리를 마지막으로 쓴 날짜와 시간을 반환합니다.

GetLastWriteTimeUtc(String)

지정된 파일 또는 디렉터리에 마지막으로 쓴 날짜와 시간을 UTC 기준으로 반환합니다.

GetUnixFileMode(SafeFileHandle)

UnixFileMode 지정된 파일 핸들의 값을 가져옵니다.

GetUnixFileMode(String)

경로에 있는 파일의 UnixFileMode를 가져옵니다.

Move(String, String)

지정된 파일을 새 위치로 이동하고 새 파일의 이름을 지정할 수 있는 옵션을 제공합니다.

Move(String, String, Boolean)

새 파일 이름을 지정하고 대상 파일이 이미 있으면 덮어쓰는 옵션을 제공하여, 지정된 파일을 새 위치로 이동합니다.

Open(String, FileMode)

지정된 경로에서 FileStream을 공유하지 않고 읽기/쓰기 액세스로 엽니다.

Open(String, FileMode, FileAccess)

지정된 경로에서 FileStream을 공유하지 않고 지정된 모드와 액세스로 엽니다.

Open(String, FileMode, FileAccess, FileShare)

읽기, 쓰기 또는 읽기/쓰기 권한과 지정된 공유 옵션을 사용하여 지정된 경로에서 지정된 모드를 갖는 FileStream을 엽니다.

Open(String, FileStreamOptions)

지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한을 사용하여 클래스의 FileStream 새 인스턴스를 초기화하고, 다른 FileStreams가 동일한 파일, 버퍼 크기, 추가 파일 옵션 및 할당 크기에 액세스할 수 있습니다.

OpenHandle(String, FileMode, FileAccess, FileShare, FileOptions, Int64)

지정된 경로, 생성 모드, 읽기/쓰기 및 공유 권한을 사용하여 클래스의 SafeFileHandle 새 인스턴스를 초기화하고, 다른 SafeFileHandles가 동일한 파일, 추가 파일 옵션 및 할당 크기에 액세스할 수 있습니다.

OpenRead(String)

읽기용으로 기존 파일을 엽니다.

OpenText(String)

UTF-8로 인코딩된 기존 텍스트 파일을 읽기용으로 엽니다.

OpenWrite(String)

쓰기 위해 기존 파일을 열거나 새 파일을 만듭니다.

ReadAllBytes(String)

이진 파일을 열고 파일의 내용을 바이트 배열로 읽어 들인 다음 파일을 닫습니다.

ReadAllBytesAsync(String, CancellationToken)

이진 파일을 비동기식으로 열고 파일의 내용을 바이트 배열로 읽은 다음 파일을 닫습니다.

ReadAllLines(String)

텍스트 파일을 열고 파일의 모든 줄을 읽은 다음 파일을 닫습니다.

ReadAllLines(String, Encoding)

파일을 열고 지정된 인코딩을 사용하여 파일의 모든 줄을 읽은 다음 파일을 닫습니다.

ReadAllLinesAsync(String, CancellationToken)

텍스트 파일을 비동기식으로 열고 파일의 모든 줄을 읽은 다음 파일을 닫습니다.

ReadAllLinesAsync(String, Encoding, CancellationToken)

비동기식으로 텍스트 파일을 열고 지정된 인코딩을 사용하여 파일의 모든 줄을 읽은 다음 파일을 닫습니다.

ReadAllText(String)

텍스트 파일을 열고, 파일의 모든 텍스트를 읽은 다음에 파일을 닫습니다.

ReadAllText(String, Encoding)

파일을 열고, 지정된 인코딩을 사용하여 파일의 모든 텍스트를 읽은 다음에 파일을 닫습니다.

ReadAllTextAsync(String, CancellationToken)

비동기식으로 텍스트 파일을 열고, 파일의 모든 텍스트를 읽은 다음 파일을 닫습니다.

ReadAllTextAsync(String, Encoding, CancellationToken)

비동기식으로 텍스트 파일을 열고 지정된 인코딩을 사용하여 파일의 모든 텍스트를 읽은 다음 파일을 닫습니다.

ReadLines(String)

파일의 줄을 읽습니다.

ReadLines(String, Encoding)

지정된 인코딩을 가진 파일의 줄을 읽습니다.

ReadLinesAsync(String, CancellationToken)

파일의 줄을 비동기적으로 읽습니다.

ReadLinesAsync(String, Encoding, CancellationToken)

지정된 인코딩이 있는 파일의 줄을 비동기적으로 읽습니다.

Replace(String, String, String)

지정된 파일의 내용을 다른 파일의 내용으로 대체합니다. 이때 원래 파일은 삭제되고 대체된 파일의 백업이 만들어집니다.

Replace(String, String, String, Boolean)

지정된 파일의 내용을 다른 파일의 내용으로 대체합니다. 이때 원래 파일은 삭제되고 대체된 파일의 백업이 만들어지며 선택적으로 병합 오류가 무시됩니다.

ResolveLinkTarget(String, Boolean)

지정된 파일 링크의 대상을 가져옵니다.

SetAccessControl(String, FileSecurity)

FileSecurity 개체에 설명된 ACL(액세스 제어 목록) 항목을 지정된 파일에 적용합니다.

SetAttributes(String, FileAttributes)

지정된 경로에 있는 파일의 지정된 FileAttributes를 가져옵니다.

SetCreationTime(String, DateTime)

파일이 만들어진 날짜와 시간을 설정합니다.

SetCreationTimeUtc(String, DateTime)

파일을 만든 날짜와 시간을 UTC 기준으로 설정합니다.

SetLastAccessTime(String, DateTime)

지정된 파일을 마지막으로 액세스한 날짜와 시간을 설정합니다.

SetLastAccessTimeUtc(String, DateTime)

지정된 파일을 마지막으로 액세스한 날짜와 시간을 UTC 기준으로 설정합니다.

SetLastWriteTime(String, DateTime)

지정된 파일에 마지막으로 쓴 날짜와 시간을 설정합니다.

SetLastWriteTimeUtc(String, DateTime)

지정된 파일에 마지막으로 쓴 날짜와 시간을 UTC 기준으로 설정합니다.

SetUnixFileMode(SafeFileHandle, UnixFileMode)

지정된 파일 핸들의 지정된 UnixFileMode 값을 설정합니다.

SetUnixFileMode(String, UnixFileMode)

지정된 경로에 있는 파일의 지정된 UnixFileMode를 가져옵니다.

WriteAllBytes(String, Byte[])

새 파일을 만들고 지정된 바이트 배열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있으면 덮어씁니다.

WriteAllBytesAsync(String, Byte[], CancellationToken)

비동기식으로 새 파일을 만들고 지정된 바이트 배열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있으면 덮어씁니다.

WriteAllLines(String, IEnumerable<String>)

새 파일을 만들고 문자열의 컬렉션을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLines(String, IEnumerable<String>, Encoding)

지정된 인코딩을 사용하여 새 파일을 만들고 문자열의 컬렉션을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLines(String, String[])

새 파일을 만들고 지정된 문자열 배열을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLines(String, String[], Encoding)

새 파일을 만들고 지정된 인코딩을 사용하여 지정된 문자열 배열을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLinesAsync(String, IEnumerable<String>, CancellationToken)

비동기식으로 새 파일을 만들고 지정된 줄을 파일에 쓴 다음 파일을 닫습니다.

WriteAllLinesAsync(String, IEnumerable<String>, Encoding, CancellationToken)

비동기식으로 새 파일을 만들고 지정된 인코딩을 사용하여 지정된 줄을 파일에 쓴 다음 파일을 닫습니다.

WriteAllText(String, String)

새 파일을 만들고 지정된 문자열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있으면 덮어씁니다.

WriteAllText(String, String, Encoding)

새 파일을 만들고 지정된 인코딩을 사용하여 지정된 문자열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있으면 덮어씁니다.

WriteAllTextAsync(String, String, CancellationToken)

비동기식으로 새 파일을 만들고 지정된 문자열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있으면 덮어씁니다.

WriteAllTextAsync(String, String, Encoding, CancellationToken)

비동기식으로 새 파일을 만들고 지정된 인코딩을 사용하여 지정된 문자열을 파일에 쓴 다음 파일을 닫습니다. 대상 파일이 이미 있으면 덮어씁니다.

적용 대상

추가 정보