Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menentukan sama ada Fail Boleh Laksana dalam Go?

Bagaimana untuk Menentukan sama ada Fail Boleh Laksana dalam Go?

Patricia Arquette
Lepaskan: 2024-11-03 19:30:29
asal
772 orang telah melayarinya

How to Determine if a File is Executable in Go?

Mengesahkan Kebolehlaksanaan Fail dalam Go

Dalam Go, anda boleh menentukan sama ada fail boleh laku dengan memeriksa mod failnya, khususnya bit kebenaran . Begini cara anda boleh membina fungsi untuk melaksanakan semakan ini:

<code class="go">import (
    "os"
)

func IsExecutable(mode os.FileMode) bool {
    return mode&0111 != 0
}</code>
Salin selepas log masuk

Fungsi ini menggunakan operator bitwise AND (&) untuk mengekstrak 9 bit kebenaran terendah (0777 octal bitmask) daripada mod fail. Bitmask 0111 membolehkan kami mengesahkan sama ada mana-mana bit kebenaran fail ditetapkan untuk pelaksanaan. Jika mana-mana bit ditetapkan, fungsi akan kembali benar.

Kes Ujian:

Pertimbangkan kes ujian berikut:

<code class="sh">#!/usr/bin/env bash
...
# create test directory and files
...
# set executable permission on quux.sh
chmod +x test/foo/bar/quux.sh
...</code>
Salin selepas log masuk

Dan yang sepadan Kod Go:

<code class="go">import (
    "os"
    "path/filepath"
    "fmt"
)

func main() {
    filepath.Walk("test", func(path string, info os.FileInfo, err error) error {
        if err != nil || info.IsDir() {
            return err
        }
        fmt.Printf("%v %v", path, IsExecutable(info.Mode()))
    }
}</code>
Salin selepas log masuk

Menjalankan kod ini harus mencetak:

test/foo/bar/baz.txt false
test/foo/bar/quux.sh true
Salin selepas log masuk

Ini mengesahkan bahawa baz.txt tidak boleh dilaksanakan manakala quux.sh adalah, seperti yang dimaksudkan oleh kes ujian.

Keserasian Windows

Penyelesaian yang disediakan adalah khusus untuk sistem Unix, termasuk Linux dan macOS. Untuk Windows, anda boleh menggunakan os. fungsi boleh laku untuk menentukan sama ada fail boleh laku. Walau bagaimanapun, perlu diingat bahawa os.Executable hanya menunjukkan sama ada fail tersebut mempunyai sambungan ".exe", bukan kebolehlaksanaan sebenar.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan sama ada Fail Boleh Laksana 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan