Bagaimanakah anda membuat instantiate `os.FileMode` dengan tepat untuk penciptaan fail dan kemas kini dalam Go?

DDD
Lepaskan: 2024-11-11 05:13:02
asal
166 orang telah melayarinya

How do you accurately instantiate `os.FileMode` for file creation and updates in Go?

Memahami dan Memastikan os.FileMode untuk Penciptaan dan Kemas Kini Fail

Dalam pengaturcaraan Go, jenis os.FileMode mewakili kebenaran dan atribut fail. Walau bagaimanapun, banyak contoh mengabaikan instantiasi os.FileMode yang betul untuk penciptaan atau pengubahsuaian fail. Artikel ini meneroka cara untuk menghidupkan os.FileMode dengan tepat.

Untuk menetapkan kebenaran secara langsung, tentukan pemalar yang mewakili bit kebenaran:

const (
    OS_READ = 04
    OS_WRITE = 02
    OS_EX = 01
    OS_USER_SHIFT = 6
    OS_GROUP_SHIFT = 3
    OS_OTH_SHIFT = 0

    OS_USER_R = OS_READ << OS_USER_SHIFT
    OS_USER_W = OS_WRITE << OS_USER_SHIFT
    OS_USER_X = OS_EX << OS_USER_SHIFT
    OS_USER_RW = OS_USER_R | OS_USER_W
    OS_USER_RWX = OS_USER_RW | OS_USER_X

    OS_GROUP_R = OS_READ << OS_GROUP_SHIFT
    OS_GROUP_W = OS_WRITE << OS_GROUP_SHIFT
    OS_GROUP_X = OS_EX << OS_GROUP_SHIFT
    OS_GROUP_RW = OS_GROUP_R | OS_GROUP_W
    OS_GROUP_RWX = OS_GROUP_RW | OS_GROUP_X

    OS_OTH_R = OS_READ << OS_OTH_SHIFT
    OS_OTH_W = OS_WRITE << OS_OTH_SHIFT
    OS_OTH_X = OS_EX << OS_OTH_SHIFT
    OS_OTH_RW = OS_OTH_R | OS_OTH_W
    OS_OTH_RWX = OS_OTH_RW | OS_OTH_X

    OS_ALL_R = OS_USER_R | OS_GROUP_R | OS_OTH_R
    OS_ALL_W = OS_USER_W | OS_GROUP_W | OS_OTH_W
    OS_ALL_X = OS_USER_X | OS_GROUP_X | OS_OTH_X
    OS_ALL_RW = OS_ALL_R | OS_ALL_W
    OS_ALL_RWX = OS_ALL_RW | OS_GROUP_X
)
Salin selepas log masuk

Kini, anda boleh menentukan kebenaran yang anda inginkan secara eksplisit:

var dir_file_mode os.FileMode
dir_file_mode = os.ModeDir | (OS_USER_RWX | OS_ALL_R)
os.MkdirAll(dir_str, dir_file_mode)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah anda membuat instantiate `os.FileMode` dengan tepat untuk penciptaan fail dan kemas kini dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan