Programming/Windows API
SetFileAttributes함수는 File의 속성을 설정합니다.

Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Integer) As Integer
▶VB.NET 선언

[DllImport("kernel32")]
public static extern int SetFileAttributes(string lpFileName, int dwFileAttributes);
▶C# 선언

SetFileAttributes함수의 첫번째 인수는 속성을 설정할 File이 있는 경로와 이름을 지정하고 두번째 인수에서는 File에 설정할 속성을 지정합니다.

이 속성에 대해서는 다음표를 참고해 주시기 바랍니다.

 상수  값  설명
 FILE_ATTRIBUTE_ARCHIVE  20  일반문서 File
 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_NOT_CONTENT_INDEXED  200  Indexing 하지 않음
 FILE_ATTRIBUTE_SYSTEM  4  System File
 FILE_ATTRIBUTE_TEMPORARY  100  임시 File

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

설정하고자 하는 File의 속성을 일반 txt문서 File로 할것이라면 설정 값을 32(16진수 20)로 하면 됩니다. 만일 이에 더해 숨김속성도 같이 설정하려면 34(32(16진수 20) + 2(16진수 2))로 해야 합니다.

예를 들어 C Drive에 있는 aaa.txt File을 일반문서 File과 숨김속성을 같이 설정하려면 SetFileAttributes함수는 다음과 같이 호출할 수 있습니다.

SetFileAttributes("C:\aaa.txt", 34)
▶VB.NET 호출

SetFileAttributes("C:\\aaa.txt", 34);
▶C# 호출

이 함수는 실행에 실패할 경우 0을 반환합니다.
0 0