FileInfo 클래스

정의

파일을 만들고, 복사하고, 삭제하고, 이동하고, 열기 위한 속성 및 인스턴스 메서드를 제공하고, FileStream 개체를 만드는 것을 도와줍니다. 이 클래스는 상속될 수 없습니다.

public ref class FileInfo sealed : System::IO::FileSystemInfo
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileInfo : System.IO.FileSystemInfo
type FileInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
type FileInfo = class
    inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileInfo = class
    inherit FileSystemInfo
Public NotInheritable Class FileInfo
Inherits FileSystemInfo
상속
상속
특성

예제

다음 예제에서는 클래스의 기본 멤버 중 일부를 보여 줍니다FileInfo.

속성이 처음 검색되면 FileInfo 메서드를 Refresh 호출하고 파일에 대한 정보를 캐시합니다. 후속 호출에서 를 호출 Refresh 하여 정보의 최신 복사본을 가져와야 합니다.

using namespace System;
using namespace System::IO;

int main()
{
   String^ path = Path::GetTempFileName();
   FileInfo^ fi1 = gcnew FileInfo( path );
   //Create a file to write to.
   StreamWriter^ sw = fi1->CreateText();
   try
   {
     sw->WriteLine( "Hello" );
     sw->WriteLine( "And" );
     sw->WriteLine( "Welcome" );
   }
   finally
   {
     if ( sw )
        delete (IDisposable^)sw;
   }

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

   try
   {
      String^ path2 = Path::GetTempFileName();
      FileInfo^ fi2 = gcnew FileInfo( path2 );

      //Ensure that the target does not exist.
      fi2->Delete();

      //Copy the file.
      fi1->CopyTo( path2 );
      Console::WriteLine( "{0} was copied to {1}.", path, path2 );

      //Delete the newly created file.
      fi2->Delete();
      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 = Path.GetTempFileName();
        var fi1 = new FileInfo(path);

        // Create a file to write to.
        using (StreamWriter sw = fi1.CreateText())
        {
            sw.WriteLine("Hello");
            sw.WriteLine("And");
            sw.WriteLine("Welcome");
        }	

        // Open the file to read from.
        using (StreamReader sr = fi1.OpenText())
        {
            var s = "";
            while ((s = sr.ReadLine()) != null)
            {
                Console.WriteLine(s);
            }
        }

        try
        {
            string path2 = Path.GetTempFileName();
            var fi2 = new FileInfo(path2);

            // Ensure that the target does not exist.
            fi2.Delete();

            // Copy the file.
            fi1.CopyTo(path2);
            Console.WriteLine($"{path} was copied to {path2}.");

            // Delete the newly created file.
            fi2.Delete();
            Console.WriteLine($"{path2} was successfully deleted.");
        }
        catch (Exception e)
        {
            Console.WriteLine($"The process failed: {e.ToString()}");
        }
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path1 As String = Path.GetTempFileName()
        Dim path2 As String = Path.GetTempFileName()
        Dim fi As New FileInfo(path1)

        ' Create a file to write to.
        Using sw As StreamWriter = fi.CreateText()
            sw.WriteLine("Hello")
            sw.WriteLine("And")
            sw.WriteLine("Welcome")
        End Using

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

            Dim fi2 As New FileInfo(path2)

            ' Ensure that the target does not exist.
            fi2.Delete()

            ' Copy the file.
            fi.CopyTo(path2)
            Console.WriteLine($"{path1} was copied to {path2}.")

            ' Delete the newly created file.
            fi2.Delete()
            Console.WriteLine($"{path2} was successfully deleted.")

        Catch e As Exception
            Console.WriteLine($"The process failed: {e.ToString()}.")
        End Try
    End Sub
End Class

이 예제에서는 다음과 유사한 출력을 생성합니다.

Hello
And
Welcome
C:\Users\userName\AppData\Local\Temp\tmp70AB.tmp was copied to C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp.
C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp was successfully deleted.

설명

FileInfo 복사, 이동, 이름 바꾸기, 만들기, 열기, 삭제 및 파일에 추가와 같은 일반적인 작업에는 클래스를 사용합니다.

동일한 파일에서 여러 작업을 수행하는 경우 보안 검사 항상 필요한 것은 아니므로 클래스의 해당 정적 메서드 대신 instance 메서드 File 를 사용하는 FileInfo 것이 더 효율적일 수 있습니다.

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

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

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

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

참고

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

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

  • C#의 "c:\\MyDir\\MyFile.txt" 또는 Visual Basic의 "c:\MyDir\MyFile.txt"입니다.

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

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

  • C#의 "\\\\MyServer\\MyShare" 또는 Visual Basic의 "\\MyServer\MyShare"입니다.

클래스는 FileInfo 파일에 대한 정보를 검색할 수 있는 다음 속성을 제공합니다. 각 속성을 사용하는 방법에 대한 예제는 속성 페이지를 참조하세요.

  • 속성은 Directory 파일의 부모 디렉터리를 나타내는 개체를 검색합니다.

  • 속성은 DirectoryName 파일의 부모 디렉터리의 전체 경로를 검색합니다.

  • 속성에서 Exists 작동하기 전에 파일이 있는지 확인합니다.

  • 속성은 IsReadOnly 파일을 수정할 수 있는지 여부를 지정하는 값을 검색하거나 설정합니다.

  • Length 파일의 크기를 검색합니다.

  • Name 파일의 이름을 검색합니다.

생성자

FileInfo(String)

파일 경로의 래퍼 역할을 하는 FileInfo 클래스의 새 인스턴스를 초기화합니다.

필드

FullPath

파일이나 디렉터리의 정규화된 경로를 나타냅니다.

(다음에서 상속됨 FileSystemInfo)
OriginalPath

사용자가 원래 지정한 상대 또는 절대 경로입니다.

(다음에서 상속됨 FileSystemInfo)

속성

Attributes

현재 파일 또는 디렉터리의 특성을 가져오거나 설정합니다.

(다음에서 상속됨 FileSystemInfo)
CreationTime

현재 파일 또는 디렉터리를 만든 시간을 가져오거나 설정합니다.

(다음에서 상속됨 FileSystemInfo)
CreationTimeUtc

현재 파일 또는 디렉터리를 만든 시간을 UTC(협정 세계시) 기준으로 가져오거나 설정합니다.

(다음에서 상속됨 FileSystemInfo)
Directory

부모 디렉터리의 인스턴스를 가져옵니다.

DirectoryName

디렉터리의 전체 경로를 나타내는 문자열을 가져옵니다.

Exists

파일이 있는지 여부를 나타내는 값을 가져옵니다.

Extension

전체 파일 이름인 경우에도 선행 점을 . 포함하여 파일 이름의 확장명 부분을 가져오거나 확장명 없는 경우 빈 문자열을 가져옵니다.

(다음에서 상속됨 FileSystemInfo)
FullName

파일이나 디렉터리의 전체 경로를 가져옵니다.

(다음에서 상속됨 FileSystemInfo)
IsReadOnly

현재 파일이 읽기 전용인지 여부를 결정하는 값을 가져오거나 설정합니다.

LastAccessTime

현재 파일이나 디렉터리에 마지막으로 액세스한 시간을 가져오거나 설정합니다.

(다음에서 상속됨 FileSystemInfo)
LastAccessTimeUtc

현재 파일이나 디렉터리를 마지막으로 액세스한 시간을 UTC 기준으로 가져오거나 설정합니다.

(다음에서 상속됨 FileSystemInfo)
LastWriteTime

현재 파일이나 디렉터리에 마지막으로 쓴 시간을 가져오거나 설정합니다.

(다음에서 상속됨 FileSystemInfo)
LastWriteTimeUtc

현재 파일이나 디렉터리에 마지막으로 쓴 시간을 UTC 기준으로 가져오거나 설정합니다.

(다음에서 상속됨 FileSystemInfo)
Length

현재 파일의 크기(바이트)를 가져옵니다.

LinkTarget

FullName있는 링크의 대상 경로를 가져오거나 nullFileSystemInfo instance 링크를 나타내지 않는 경우 입니다.

(다음에서 상속됨 FileSystemInfo)
Name

파일 이름을 가져옵니다.

UnixFileMode

현재 파일 또는 디렉터리에 대한 Unix 파일 모드를 가져오거나 설정합니다.

(다음에서 상속됨 FileSystemInfo)

메서드

AppendText()

StreamWriter의 이 인스턴스가 나타내는 파일에 텍스트를 추가하는 FileInfo를 만듭니다.

CopyTo(String)

새 파일에 기존 파일을 복사하고 기존 파일을 덮어쓸 수 없도록 합니다.

CopyTo(String, Boolean)

새 파일에 기존 파일을 복사하고 기존 파일을 덮어쓸 수 있도록 합니다.

Create()

파일을 만듭니다.

CreateAsSymbolicLink(String)

지정된 pathToTarget를 가리키는 에 있는 FullName 기호 링크를 만듭니다.

(다음에서 상속됨 FileSystemInfo)
CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
CreateText()

새 텍스트 파일을 쓰는 StreamWriter를 만듭니다.

Decrypt()

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

Delete()

파일을 영구적으로 삭제합니다.

Encrypt()

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

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetAccessControl()

현재 FileSecurity 개체에서 설명하는 파일의 ACL(액세스 제어 목록) 항목을 캡슐화하는 FileInfo 개체를 가져옵니다.

GetAccessControl(AccessControlSections)

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

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.

(다음에서 상속됨 MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
사용되지 않음.

파일 이름 및 추가 예외 정보를 사용하여 SerializationInfo 개체를 설정합니다.

(다음에서 상속됨 FileSystemInfo)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
InitializeLifetimeService()
사용되지 않음.

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.

(다음에서 상속됨 MarshalByRefObject)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.

(다음에서 상속됨 MarshalByRefObject)
MoveTo(String)

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

MoveTo(String, Boolean)

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

Open(FileMode)

지정된 모드로 파일을 엽니다.

Open(FileMode, FileAccess)

읽기, 쓰기 또는 읽기/쓰기 권한을 사용하여 지정된 모드로 파일을 엽니다.

Open(FileMode, FileAccess, FileShare)

읽기, 쓰기 또는 읽기/쓰기 권한과 지정된 공유 옵션을 사용하여 특정 모드로 파일을 엽니다.

Open(FileStreamOptions)

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

OpenRead()

읽기 전용 FileStream을 만듭니다.

OpenText()

UTF8 인코딩 방식으로 기존 텍스트 파일에서 읽는 StreamReader 를 만듭니다.

OpenWrite()

쓰기 전용 FileStream을 만듭니다.

Refresh()

개체의 상태를 새로 고칩니다.

(다음에서 상속됨 FileSystemInfo)
Replace(String, String)

지정된 파일의 내용을 현재 FileInfo 개체에서 설명하는 파일로 대체합니다. 이때 원본 파일을 삭제하고 대체된 파일의 백업을 만듭니다.

Replace(String, String, Boolean)

지정된 파일의 내용을 현재 FileInfo 개체에서 설명하는 파일로 대체합니다. 이때 원본 파일을 삭제하고 대체된 파일의 백업을 만듭니다. 병합 오류를 무시할지 여부도 지정합니다.

ResolveLinkTarget(Boolean)

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

(다음에서 상속됨 FileSystemInfo)
SetAccessControl(FileSecurity)

FileSecurity 개체에서 설명하는 ACL(액세스 제어 목록) 항목을 현재 FileInfo 개체에서 설명하는 파일에 적용합니다.

ToString()

FileInfo 생성자에 전달된 원래 경로를 반환합니다. FullName 전체 경로 또는 파일 이름에 또는 Name 속성을 사용합니다.

ToString()

원래 경로를 반환합니다. 전체 경로 또는 파일/디렉터리 이름의 FullName 또는 Name 속성을 사용합니다.

(다음에서 상속됨 FileSystemInfo)

확장 메서드

Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

지정된 속성 및 보안 설정을 사용하여 새 파일 스트림을 만듭니다.

GetAccessControl(FileInfo)

파일의 보안 정보를 반환합니다.

GetAccessControl(FileInfo, AccessControlSections)

파일의 보안 정보를 반환합니다.

SetAccessControl(FileInfo, FileSecurity)

기존 파일의 보안 특성을 변경합니다.

적용 대상

추가 정보