Maison > Article > développement back-end > Comment marquer des fichiers zip comme exécutables Unix ?
L'éditeur php Xiaoxin vous présentera comment marquer les fichiers du fichier zip comme fichiers exécutables Unix. Dans les systèmes Unix, l'attribut exécutable d'un fichier est déterminé par les autorisations du fichier, nous devons donc modifier les autorisations des fichiers dans le fichier zip. Tout d’abord, décompressez le fichier zip dans le dossier cible. Ensuite, utilisez la commande chmod pour modifier les autorisations du fichier. Enfin, reconditionnez les fichiers modifiés dans un fichier zip. Avec cette étape simple, vous pouvez marquer les fichiers de votre fichier zip comme exécutables Unix.
Je souhaite écrire une fonction comme celle-ci :
func MarkFileAsExecutable(zipPath, filePath string) error
Il reçoit le chemin du zip et le chemin du fichier dans le zip. Le but est d'utiliser le package zip
pour modifier les attributs externes d'un fichier interne, en le marquant comme exécutable Unix.
Veuillez noter que marquer le fichier comme exécutable avant de l'archiver à l'aide de chmod +x
n'est pas une solution car j'en ai besoin pour travailler sous Windows. Par conséquent, je dois modifier l'archive zip existante en conséquence. chmod +x
归档文件之前将文件标记为可执行文件并不是一个解决方案,因为我需要它在 windows 上工作。因此,我需要相应地修改现有的 zip 存档。
您可以使用 zip
包。它提供了一个reader
和一个writer
lecteur
et un écrivain
. Vous ouvrez l'archive zip avec Reader. Vous parcourez ensuite les fichiers de l'archive, modifiez les autorisations si nécessaire et copiez les fichiers sur l'enregistreur. 🎜
🎜Ceci est un exemple minimal sans vérification d'erreur : 🎜
package main import ( "archive/zip" "os" ) func main() { r, _ := zip.OpenReader("example.zip") defer r.Close() f, _ := os.Create("output.zip") defer f.Close() w := zip.NewWriter(f) defer w.Close() for _, f := range r.File { f.SetMode(0777) w.Copy(f) } }
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!