.NET/Windows API for .NET

GetFileAttributes - File및 Folder속성 확인

클리엘 2019. 8. 5. 17:25
728x90

GetFileAttributes함수는 지정한 File이나 Folder의 속성을 확인하는 함수입니다.

Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Integer

- VB.NET 선언

[DllImport("kernel32")]
public static extern int GetFileAttributes(string lpFileName);

- C# 선언

 

함수의 인수로는 속성을 확인할 File이나 Folder를 지정해 주기만 하면 됩니다. 예를 들어 'C:\WINDOWS'의 'abc.txt' File을 확인해 보려면 함수를 다음과 같이 선언합니다.

GetFileAttributes("C:\WINDOWS\abc.txt")

- VB.NET 호출

GetFileAttributes("C:\\WINDOWS\\abc.txt")

- C# 호출

 

함수가 실행되고 나면 특정값을 반환하게 되는데 이 값을 통해 속성을 구분해야 합니다. 각 값에 따른 속성은 아래 표를 참고하여 주십시오.

 상수  값  설명
 FILE_ATTRIBUTE_ARCHIVE  20  일반문서 File
 FILE_ATTRIBUTE_COMPRESSED  800  압축File
 FILE_ATTRIBUTE_DIRECTORY  10  Folder
 FILE_ATTRIBUTE_ENCRYPTED  4000  암호화된 File
 FILE_ATTRIBUTE_HIDDEN  2  숨김 File
 FILE_ATTRIBUTE_NORMAL  80  일반 File
 FILE_ATTRIBUTE_OFFLINE  1000  Offline File
 FILE_ATTRIBUTE_READONLY  1  읽기전용 File
 FILE_ATTRIBUTE_REPARSE_POINT  400  조합된 재구문분석 위치 File
 FILE_ATTRIBUTE_SPARSE_FILE  200  (설명1) 참고
 FILE_ATTRIBUTE_SYSTEM  4  System File
 FILE_ATTRIBUTE_TEMPORARY  100  임시 File


값은 16진수 기준으로 VB.NET에서는 &H, C#에서는 0x로 구분합니다.

(설명1)
실제 File크기와 Disk할당영역이 다른 File로서 File용량은 크다하더라도 실제적인 Disk 할당 영역은 그보다 훨씬 작은 File을 의미합니다.(Torrent로 File을 내려받거나 파일을 복사할때 등등 이런 현상을 자주 볼 수 있습니다.)

확인하고자 하는 File이 일반 TEXT문서 File이라면 GetFileAttributes함수는 32(16진수 20)값을 반환하며 만일 이 TEXT File이 숨김으로 설정되어 있다면 결과값으로 34(32(16진수 20) + 2(16진수 2))를 반환합니다.

728x90