FileInfo 클래스

정의

파일을 만들고, 복사하고, 삭제하고, 이동하고, 열기 위한 속성 및 인스턴스 메서드를 제공하고, FileStream 개체를 만드는 것을 도와 줍니다.Provides properties and instance methods for the creation, copying, deletion, moving, and opening of files, and aids in the creation of FileStream objects. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

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

예제

다음 예제에서는 기본 멤버 중 일부는 FileInfo 클래스입니다.The following example demonstrates some of the main members of the FileInfo class.

속성을 먼저 검색 하는 경우 FileInfo 호출을 Refresh 파일에 대 한 메서드 및 캐시 정보입니다.When the properties are first retrieved, FileInfo calls the Refresh method and caches information about the file. 후속 호출에서 호출 해야 Refresh 정보의 최신 복사본을 가져올 수 있습니다.On subsequent calls, you must call Refresh to get the latest copy of the information.

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

이 예제에서는 다음과 유사한 출력을 생성 합니다.This example produces output similar to the following.

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 복사, 이동, 이름 바꾸기, 만들기, 열기, 삭제 하 고 파일에 추가 하는 등의 일반적인 작업에 대 한 클래스입니다.Use the FileInfo class for typical operations such as copying, moving, renaming, creating, opening, deleting, and appending to files.

동일한 파일에 여러 작업을 수행 하는 경우 보다 효율적으로 사용할 수 있습니다 FileInfo 메서드 중 해당 정적 메서드 대신 인스턴스는 File 클래스를 보안 검사는 항상 되지 않으므로 필요 합니다.If you are performing multiple operations on the same file, it can be more efficient to use FileInfo instance methods instead of the corresponding static methods of the File class, because a security check will not always be necessary.

많은 FileInfo 메서드를 작성 하거나 파일을 열 때 다른 I/O 형식을 반환 합니다.Many of the FileInfo methods return other I/O types when you create or open files. 형식을 사용할 수 있습니다 이러한 다른 추가 파일을 조작할 수 있습니다.You can use these other types to further manipulate a file. 자세한 내용은 특정 참조 FileInfo 와 같은 멤버 Open, OpenRead, OpenTextCreateText, 또는 Create합니다.For more information, see specific FileInfo members such as Open, OpenRead, OpenText, CreateText, or Create.

기본적으로 새 파일에 대 한 전체 읽기/쓰기 액세스는 모든 사용자에 게 부여 됩니다.By default, full read/write access to new files is granted to all users.

다음 표에서 다양 한 동작을 사용자 지정 하는 데 사용 되는 열거형을 설명 FileInfo 메서드.The following table describes the enumerations that are used to customize the behavior of various FileInfo methods.

열거형Enumeration 설명Description
FileAccess 읽기 및 쓰기 파일에 대 한 액세스를 지정합니다.Specifies read and write access to a file.
FileShare 이미 사용 중인 파일에 대 한 허용 되는 액세스 수준을 지정 합니다.Specifies the level of access permitted for a file that is already in use.
FileMode 기존 파일의 내용을 유지 또는 덮어쓸지 여부를 하 고 기존 파일을 만드는 요청에 예외가 발생 하는지 여부를 지정 합니다.Specifies whether the contents of an existing file are preserved or overwritten, and whether requests to create an existing file cause an exception.

참고

입력 문자열로 경로 허용 하는 멤버를 해당 경로 올바른 형식 이어야 합니다. 또는 예외가 발생 합니다.In members that accept a path as an input string, that path must be well-formed or an exception is raised. 예를 들어, 경로 정규화 공백으로 시작 하지만 경로 클래스의 메서드에서 잘리지 않습니다.For example, if a path is fully qualified but begins with a space, the path is not trimmed in methods of the class. 따라서 경로 잘못 되었으며 예외가 발생 합니다.Therefore, the path is malformed and an exception is raised. 마찬가지로, 경로 또는 경로의 조합을 두 번 정규화 될 수 없습니다.Similarly, 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 in most cases. 경로 잘 구성 된 경우에 경로 문자열을 허용 하는 메서드를 사용 하 여 확인 합니다.Ensure that your paths are well-formed when using methods that accept a path string.

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

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

  • "c:\\MyDir" C# 또는 Visual Basic의 "c:\MyDir"입니다."c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.

  • "MyDir\\MySubdir" C# 또는 Visual Basic의 "MyDir\MySubDir"입니다."MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.

  • "\\\\MyServer\\MyShare" C#에서 또는 "\\MyServer\MyShare" Visual Basic의 합니다."\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.

FileInfo 클래스 파일에 대 한 정보를 검색할 수 있도록 하는 속성을 제공 합니다.The FileInfo class provides the following properties that enable you to retrieve information about a file. 각 속성을 사용 하는 방법의 예에 대 한 속성 페이지를 참조 하세요.For an example of how to use each property, see the property pages.

  • Directory 속성 파일의 부모 디렉터리를 나타내는 개체를 검색 합니다.The Directory property retrieves an object that represents the parent directory of a file.

  • DirectoryName 속성 파일의 부모 디렉터리의 전체 경로 검색 합니다.The DirectoryName property retrieves the full path of the parent directory of a file.

  • Exists 속성을 운영 하기 전에 파일의 존재를 확인 합니다.The Exists property checks for the presence of a file before operating on it.

  • IsReadOnly 속성을 검색 하거나 파일을 수정할 수 있는지 여부를 지정 하는 값을 설정 합니다.The IsReadOnly property retrieves or sets a value that specifies whether a file can be modified.

  • Length 파일의 크기를 검색 합니다.The Length retrieves the size of a file.

  • Name 파일의 이름을 검색 합니다.The Name retrieves the name of a file.

생성자

FileInfo(String)

파일 경로의 래퍼 역할을 하는 FileInfo 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the FileInfo class, which acts as a wrapper for a file path.

필드

FullPath

파일이나 디렉터리의 정규화된 경로를 나타냅니다.Represents the fully qualified path of the directory or file.

(다음에서 상속됨 FileSystemInfo)
OriginalPath

사용자가 원래 지정한 상대 또는 절대 경로입니다.The path originally specified by the user, whether relative or absolute.

(다음에서 상속됨 FileSystemInfo)

속성

Attributes

현재 파일 또는 디렉터리의 특성을 가져오거나 설정합니다.Gets or sets the attributes for the current file or directory.

(다음에서 상속됨 FileSystemInfo)
CreationTime

현재 파일 또는 디렉터리를 만든 시간을 가져오거나 설정합니다.Gets or sets the creation time of the current file or directory.

(다음에서 상속됨 FileSystemInfo)
CreationTimeUtc

현재 파일 또는 디렉터리를 만든 시간을 UTC(협정 세계시) 기준으로 가져오거나 설정합니다.Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory.

(다음에서 상속됨 FileSystemInfo)
Directory

부모 디렉터리의 인스턴스를 가져옵니다.Gets an instance of the parent directory.

DirectoryName

디렉터리의 전체 경로를 나타내는 문자열을 가져옵니다.Gets a string representing the directory's full path.

Exists

파일이 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether a file exists.

Extension

파일의 확장명 부분을 나타내는 문자열을 가져옵니다.Gets the string representing the extension part of the file.

(다음에서 상속됨 FileSystemInfo)
FullName

파일이나 디렉터리의 전체 경로를 가져옵니다.Gets the full path of the directory or file.

(다음에서 상속됨 FileSystemInfo)
IsReadOnly

현재 파일이 읽기 전용인지 여부를 결정하는 값을 가져오거나 설정합니다.Gets or sets a value that determines if the current file is read only.

LastAccessTime

현재 파일이나 디렉터리에 마지막으로 액세스한 시간을 가져오거나 설정합니다.Gets or sets the time the current file or directory was last accessed.

(다음에서 상속됨 FileSystemInfo)
LastAccessTimeUtc

현재 파일이나 디렉터리를 마지막으로 액세스한 시간을 UTC 기준으로 가져오거나 설정합니다.Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed.

(다음에서 상속됨 FileSystemInfo)
LastWriteTime

현재 파일이나 디렉터리에 마지막으로 쓴 시간을 가져오거나 설정합니다.Gets or sets the time when the current file or directory was last written to.

(다음에서 상속됨 FileSystemInfo)
LastWriteTimeUtc

현재 파일이나 디렉터리에 마지막으로 쓴 시간을 UTC 기준으로 가져오거나 설정합니다.Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to.

(다음에서 상속됨 FileSystemInfo)
Length

현재 파일의 크기(바이트)를 가져옵니다.Gets the size, in bytes, of the current file.

Name

파일 이름을 가져옵니다.Gets the name of the file.

메서드

AppendText()

StreamWriter의 이 인스턴스가 나타내는 파일에 텍스트를 추가하는 FileInfo를 만듭니다.Creates a StreamWriter that appends text to the file represented by this instance of the FileInfo.

CopyTo(String)

새 파일에 기존 파일을 복사하고 기존 파일을 덮어쓸 수 없도록 합니다.Copies an existing file to a new file, disallowing the overwriting of an existing file.

CopyTo(String, Boolean)

새 파일에 기존 파일을 복사하고 기존 파일을 덮어쓸 수 있도록 합니다.Copies an existing file to a new file, allowing the overwriting of an existing file.

Create()

파일을 만듭니다.Creates a file.

CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

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

새 텍스트 파일을 쓰는 StreamWriter를 만듭니다.Creates a StreamWriter that writes a new text file.

Decrypt()

현재 계정으로 Encrypt() 메서드를 통해 암호화된 파일을 해독합니다.Decrypts a file that was encrypted by the current account using the Encrypt() method.

Delete()

파일을 영구적으로 삭제합니다.Permanently deletes a file.

Encrypt()

파일을 암호화하는 데 사용된 계정으로만 해독할 수 있도록 암호화합니다.Encrypts a file so that only the account used to encrypt the file can decrypt it.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

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

현재 FileSecurity 개체에서 설명하는 파일의 ACL(액세스 제어 목록) 항목을 캡슐화하는 FileInfo 개체를 가져옵니다.Gets a FileSecurity object that encapsulates the access control list (ACL) entries for the file described by the current FileInfo object.

GetAccessControl(AccessControlSections)

현재 FileSecurity 개체에서 설명하는 파일의 지정된 ACL(액세스 제어 목록) 항목 형식을 캡슐화하는 FileInfo 개체를 가져옵니다.Gets a FileSecurity object that encapsulates the specified type of access control list (ACL) entries for the file described by the current FileInfo object.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

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

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(다음에서 상속됨 MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

파일 이름 및 추가 예외 정보를 사용하여 SerializationInfo 개체를 설정합니다.Sets the SerializationInfo object with the file name and additional exception information.

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

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

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

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.Obtains a lifetime service object to control the lifetime policy for this instance.

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

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

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

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.Creates a shallow copy of the current MarshalByRefObject object.

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

지정된 파일을 새 위치로 이동하고 새 파일의 이름을 지정할 수 있는 옵션을 제공합니다.Moves a specified file to a new location, providing the option to specify a new file name.

MoveTo(String, Boolean)

새 파일 이름을 지정하고 대상 파일이 이미 있으면 덮어쓰는 옵션을 제공하여, 지정된 파일을 새 위치로 이동합니다.Moves a specified file to a new location, providing the options to specify a new file name and to overwrite the destination file if it already exists.

Open(FileMode)

지정된 모드로 파일을 엽니다.Opens a file in the specified mode.

Open(FileMode, FileAccess)

읽기, 쓰기 또는 읽기/쓰기 권한을 사용하여 지정된 모드로 파일을 엽니다.Opens a file in the specified mode with read, write, or read/write access.

Open(FileMode, FileAccess, FileShare)

읽기, 쓰기 또는 읽기/쓰기 권한과 지정된 공유 옵션을 사용하여 특정 모드로 파일을 엽니다.Opens a file in the specified mode with read, write, or read/write access and the specified sharing option.

OpenRead()

읽기 전용 FileStream을 만듭니다.Creates a read-only FileStream.

OpenText()

UTF8 인코딩 방식으로 기존 텍스트 파일에서 읽는 StreamReader를 만듭니다.Creates a StreamReader with UTF8 encoding that reads from an existing text file.

OpenWrite()

쓰기 전용 FileStream을 만듭니다.Creates a write-only FileStream.

Refresh()

개체의 상태를 새로 고칩니다.Refreshes the state of the object.

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

지정된 파일의 내용을 현재 FileInfo 개체에서 설명하는 파일로 대체합니다. 이때 원본 파일을 삭제하고 대체된 파일의 백업을 만듭니다.Replaces the contents of a specified file with the file described by the current FileInfo object, deleting the original file, and creating a backup of the replaced file.

Replace(String, String, Boolean)

지정된 파일의 내용을 현재 FileInfo 개체에서 설명하는 파일로 대체합니다. 이때 원본 파일을 삭제하고 대체된 파일의 백업을 만듭니다.Replaces the contents of a specified file with the file described by the current FileInfo object, deleting the original file, and creating a backup of the replaced file. 병합 오류를 무시할지 여부도 지정합니다.Also specifies whether to ignore merge errors.

SetAccessControl(FileSecurity)

FileSecurity 개체에서 설명하는 ACL(액세스 제어 목록) 항목을 현재 FileInfo 개체에서 설명하는 파일에 적용합니다.Applies access control list (ACL) entries described by a FileSecurity object to the file described by the current FileInfo object.

ToString()

경로를 문자열로 반환합니다.Returns the path as a string. 전체 경로에는 Name 속성을 사용합니다.Use the Name property for the full path.

확장 메서드

GetAccessControl(FileInfo)
GetAccessControl(FileInfo, AccessControlSections)
SetAccessControl(FileInfo, FileSecurity)

적용 대상

추가 정보