FileInfo 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
파일 만들기, 복사, 삭제, 이동 및 열기를 위한 속성 및 인스턴스 메서드를 제공하고 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
클래스의 주요 멤버 중 일부를 보여 줍니다.
속성을 처음 검색하면 FileInfoRefresh 메서드를 호출하고 파일에 대한 정보를 캐시합니다. 후속 호출에서 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 클래스를 사용합니다.
동일한 파일에서 여러 작업을 수행하는 경우 보안 검사가 항상 필요한 것은 아니므로 File 클래스의 해당 정적 메서드 대신 FileInfo 인스턴스 메서드를 사용하는 것이 더 효율적일 수 있습니다.
대부분의 FileInfo 메서드는 파일을 만들거나 열 때 다른 I/O 형식을 반환합니다. 이러한 다른 형식을 사용하여 파일을 추가로 조작할 수 있습니다. 자세한 내용은 Open, OpenRead, OpenText, CreateText또는 Create같은 특정 FileInfo 멤버를 참조하세요.
기본적으로 새 파일에 대한 전체 읽기/쓰기 액세스 권한이 모든 사용자에게 부여됩니다.
다음 표에서는 다양한 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 |
전체 파일 이름인 경우에도 선행 점 |
FullName |
디렉터리 또는 파일의 전체 경로를 가져옵니다. (다음에서 상속됨 FileSystemInfo) |
IsReadOnly |
현재 파일이 읽기 전용인지 여부를 결정하는 값을 가져오거나 설정합니다. |
LastAccessTime |
현재 파일 또는 디렉터리에 마지막으로 액세스한 시간을 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
LastAccessTimeUtc |
현재 파일 또는 디렉터리에 마지막으로 액세스한 시간(UTC)을 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
LastWriteTime |
현재 파일 또는 디렉터리를 마지막으로 쓴 시간을 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
LastWriteTimeUtc |
현재 파일 또는 디렉터리가 마지막으로 기록된 시간을 UTC(협정 세계시)로 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
Length |
현재 파일의 크기(바이트)를 가져옵니다. |
LinkTarget |
FullName있는 링크의 대상 경로를 가져오거나 이 FileSystemInfo 인스턴스가 링크를 나타내지 않는 경우 |
Name |
파일의 이름을 가져옵니다. |
UnixFileMode |
현재 파일 또는 디렉터리에 대한 Unix 파일 모드를 가져오거나 설정합니다. (다음에서 상속됨 FileSystemInfo) |
메서드
AppendText() |
이 FileInfo인스턴스가 나타내는 파일에 텍스트를 추가하는 StreamWriter 만듭니다. |
CopyTo(String) |
기존 파일을 새 파일에 복사하여 기존 파일의 덮어쓰기를 허용하지 않습니다. |
CopyTo(String, Boolean) |
기존 파일을 새 파일에 복사하여 기존 파일을 덮어쓸 수 있습니다. |
Create() |
파일을 만듭니다. |
CreateAsSymbolicLink(String) |
지정된 |
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시를 생성하는 데 필요한 모든 관련 정보를 포함하는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
CreateText() |
새 텍스트 파일을 작성하는 StreamWriter 만듭니다. |
Decrypt() |
Encrypt() 메서드를 사용하여 현재 계정으로 암호화된 파일의 암호를 해독합니다. |
Delete() |
파일을 영구적으로 삭제합니다. |
Encrypt() |
파일을 암호화하는 데 사용되는 계정만 암호를 해독할 수 있도록 파일을 암호화합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 여부를 확인합니다. (다음에서 상속됨 Object) |
GetAccessControl() |
현재 FileInfo 개체에서 설명하는 파일에 대한 ACL(액세스 제어 목록) 항목을 캡슐화하는 FileSecurity 개체를 가져옵니다. |
GetAccessControl(AccessControlSections) |
현재 FileInfo 개체에서 설명하는 파일에 대해 지정된 형식의 ACL(액세스 제어 목록) 항목을 캡슐화하는 FileSecurity 개체를 가져옵니다. |
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 클래스의 새 인스턴스를 초기화합니다. |
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) |
기존 파일의 보안 특성을 변경합니다. |
적용 대상
추가 정보
- FileSystemWatcher
- DriveInfo
- 파일 및 스트림 I/O
- 방법: 파일 텍스트 읽기
- 방법: 파일 텍스트 쓰기
- 방법: 새로 만든 데이터 파일 읽기 및 쓰기
.NET