Fungsi SetFileAttributesA (fileapi.h)

Mengatur atribut untuk file atau direktori.

Untuk melakukan operasi ini sebagai operasi yang ditransaksikan, gunakan fungsi SetFileAttributesTransacted .

Sintaks

BOOL SetFileAttributesA(
  [in] LPCSTR lpFileName,
  [in] DWORD  dwFileAttributes
);

Parameter

[in] lpFileName

Nama file yang atributnya akan diatur.

Secara default, namanya terbatas pada MAX_PATH karakter. Untuk memperpanjang batas ini menjadi 32.767 karakter lebar, tambahkan "\\?\" ke jalur. Untuk informasi selengkapnya, lihat Menamai File, Jalur, dan Namespace.

Tip

Dimulai dengan Windows 10, Versi 1607, Anda dapat memilih untuk menghapus batasan MAX_PATH tanpa menambahkan sebelumnya "\\?\". Lihat bagian "Batasan Panjang Jalur Maksimum" di Penamaan File, Jalur, dan Namespace untuk detailnya.

[in] dwFileAttributes

Atribut file yang akan diatur untuk file.

Parameter ini bisa menjadi satu atau beberapa nilai, dikombinasikan menggunakan operator bitwise-OR. Namun, semua nilai lainnya mengambil alih FILE_ATTRIBUTE_NORMAL.

Tidak semua atribut didukung oleh fungsi ini. Untuk informasi lebih lanjut, lihat bagian Keterangan.

Berikut ini adalah daftar nilai atribut yang didukung.

Nilai Makna
FILE_ATTRIBUTE_ARCHIVE
32 (0x20)
File atau direktori yang merupakan file arsip atau direktori. Aplikasi biasanya menggunakan atribut ini untuk menandai file untuk pencadangan atau penghapusan.
FILE_ATTRIBUTE_HIDDEN
2 (0x2)
File atau direktori disembunyikan. Ini tidak termasuk dalam daftar direktori biasa.
FILE_ATTRIBUTE_NORMAL
128 (0x80)
File yang tidak memiliki atribut lain yang ditetapkan. Atribut ini hanya valid jika digunakan sendiri.
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192 (0x2000)
File atau direktori tidak akan diindeks oleh layanan pengindeksan konten.
FILE_ATTRIBUTE_OFFLINE
4096 (0x1000)
Data file tidak segera tersedia. Atribut ini menunjukkan bahwa data file dipindahkan secara fisik ke penyimpanan offline. Atribut ini digunakan oleh Penyimpanan Jarak Jauh, yang merupakan perangkat lunak manajemen penyimpanan hierarkis. Aplikasi tidak boleh secara segan mengubah atribut ini.
FILE_ATTRIBUTE_READONLY
1 (0x1)
File yang bersifat baca-saja. Aplikasi dapat membaca file, tetapi tidak dapat menulis atau menghapusnya. Atribut ini tidak dihormati pada direktori. Untuk informasi selengkapnya, lihat "Anda tidak dapat melihat atau mengubah atribut Baca-saja atau Sistem folder di Windows Server 2003, di Windows XP, atau di Windows Vista.
FILE_ATTRIBUTE_SYSTEM
4 (0x4)
File atau direktori yang digunakan sistem operasi, atau digunakan secara eksklusif.
FILE_ATTRIBUTE_TEMPORARY
256 (0x100)
File yang sedang digunakan untuk penyimpanan sementara. Sistem file menghindari penulisan data kembali ke penyimpanan massal jika memori cache yang memadai tersedia, karena biasanya, aplikasi menghapus file sementara setelah handel ditutup. Dalam skenario itu, sistem sepenuhnya dapat menghindari penulisan data. Jika tidak, data ditulis setelah handel ditutup.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Tabel berikut ini menjelaskan cara mengatur atribut yang tidak dapat diatur menggunakan SetFileAttributes. Untuk daftar lengkap semua nilai atribut file dan deskripsinya, lihat Konstanta Atribut File.

Atribut Cara Mengatur
FILE_ATTRIBUTE_COMPRESSED

0x800

Untuk mengatur status kompresi file, gunakan fungsi DeviceIoControl dengan operasi FSCTL_SET_COMPRESSION .
FILE_ATTRIBUTE_DEVICE

0x40

Dipesan; jangan gunakan.
FILE_ATTRIBUTE_DIRECTORY

0x10

File tidak dapat dikonversi menjadi direktori. Untuk membuat direktori, gunakan fungsi CreateDirectory atau CreateDirectoryEx .
FILE_ATTRIBUTE_ENCRYPTED

0x4000

Untuk membuat file terenkripsi, gunakan fungsi CreateFile dengan atribut FILE_ATTRIBUTE_ENCRYPTED . Untuk mengonversi file yang ada menjadi file terenkripsi, gunakan fungsi EncryptFile .
FILE_ATTRIBUTE_REPARSE_POINT

0x400

Untuk mengaitkan titik pemisahan ulang dengan file atau direktori, gunakan fungsi DeviceIoControl dengan operasi FSCTL_SET_REPARSE_POINT .
FILE_ATTRIBUTE_SPARSE_FILE

0x200

Untuk mengatur atribut jarang file, gunakan fungsi DeviceIoControl dengan operasi FSCTL_SET_SPARSE .
 

Operasi Yang Ditransaksikan

Jika file terbuka untuk modifikasi dalam transaksi, tidak ada utas lain yang dapat membuka file untuk modifikasi sampai transaksi dilakukan. Jadi, jika utas yang ditransaksikan membuka file terlebih dahulu, utas berikutnya yang mencoba memodifikasi file sebelum transaksi dilakukan menerima pelanggaran berbagi. Jika utas yang tidak ditransaksikan memodifikasi file sebelum utas yang ditransaksikan, dan file masih terbuka ketika transaksi mencoba membukanya, transaksi menerima kesalahan ERROR_TRANSACTIONAL_CONFLICT.

Di Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Ya
SMB 3.0 Transparent Failover (TFO) Ya
SMB 3.0 dengan Berbagi File Peluasan Skala (SO) Ya
Sistem File Volume Bersama Kluster (CsvFS) Ya
Sistem File Tangguh (ReFS) Ya
 

Contoh

Misalnya, lihat Mengambil dan Mengubah Atribut File.

Catatan

Header fileapi.h mendefinisikan SetFileAttributes sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

   
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header fileapi.h (sertakan Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Konstanta Atribut File

Fungsi Manajemen File

GetFileAttributes

SetFileAttributesTransacted

Tautan Simbolis

NTFS Transaksi