Maison > Article > développement back-end > Comment déterminer si un fichier est exécutable en Go ?
Vérification de l'exécutabilité d'un fichier dans Go
Dans Go, vous pouvez déterminer si un fichier est exécutable en examinant son mode de fichier, en particulier les bits d'autorisation . Voici comment vous pouvez construire une fonction pour effectuer cette vérification :
<code class="go">import ( "os" ) func IsExecutable(mode os.FileMode) bool { return mode&0111 != 0 }</code>
Cette fonction utilise l'opérateur ET au niveau du bit (&) pour extraire les 9 bits d'autorisation les plus bas (masque de bits octal 0777) du mode fichier. Le masque de bits 0111 nous permet de vérifier si l'un des bits d'autorisation du fichier est défini pour l'exécution. Si des bits sont définis, la fonction renvoie vrai.
Cas de test :
Considérez le cas de test suivant :
<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>
Et le correspondant Allez 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>
L'exécution de ce code devrait afficher :
test/foo/bar/baz.txt false test/foo/bar/quux.sh true
Cela confirme que baz.txt n'est pas exécutable alors qu'quux.sh l'est, comme prévu par le scénario de test.
Compatibilité Windows
La solution fournie est spécifique aux systèmes Unix, notamment Linux et macOS. Pour Windows, vous pouvez utiliser le système d'exploitation. fonction exécutable pour déterminer si un fichier est exécutable. Cependant, il convient de noter que os.Executable indique uniquement si le fichier porte l'extension ".exe", et non son exécutabilité réelle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!