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