Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich feststellen, ob eine Datei in Go ausführbar ist?

Wie kann ich feststellen, ob eine Datei in Go ausführbar ist?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 19:30:29752Durchsuche

How to Determine if a File is Executable in Go?

Überprüfen der Dateiausführbarkeit in Go

In Go können Sie feststellen, ob eine Datei ausführbar ist, indem Sie ihren Dateimodus, insbesondere die Berechtigungsbits, untersuchen . So können Sie eine Funktion erstellen, um diese Prüfung durchzuführen:

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

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

Diese Funktion verwendet den bitweisen UND-Operator (&), um die niedrigsten 9 Berechtigungsbits (0777-Oktal-Bitmaske) aus dem Dateimodus zu extrahieren. Mit der Bitmaske 0111 können wir überprüfen, ob eines der Berechtigungsbits der Datei für die Ausführung gesetzt ist. Wenn irgendwelche Bits gesetzt sind, gibt die Funktion „true“ zurück.

Testfall:

Betrachten Sie den folgenden Testfall:

<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>

Und das entsprechende Go-Code:

<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>

Das Ausführen dieses Codes sollte Folgendes ausgeben:

test/foo/bar/baz.txt false
test/foo/bar/quux.sh true

Dies bestätigt, dass baz.txt nicht ausführbar ist, während quux.sh dies ist, wie im Testfall vorgesehen.

Windows-Kompatibilität

Die bereitgestellte Lösung ist spezifisch für Unix-Systeme, einschließlich Linux und macOS. Für Windows können Sie das Betriebssystem verwenden. ausführbare Funktion, um festzustellen, ob eine Datei ausführbar ist. Es ist jedoch erwähnenswert, dass os.Executable nur angibt, ob die Datei die Erweiterung „.exe“ hat, nicht ihre tatsächliche Ausführbarkeit.

Das obige ist der detaillierte Inhalt vonWie kann ich feststellen, ob eine Datei in Go ausführbar ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn