Heim > Backend-Entwicklung > Golang > 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
Freigeben: 2024-11-03 19:30:29
Original
771 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Das Ausführen dieses Codes sollte Folgendes ausgeben:

test/foo/bar/baz.txt false
test/foo/bar/quux.sh true
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage