golang 遞迴刪除PaxHeader資料夾
Linux系統下打成tar.gz包發到Windows系統下然後解壓後,由於tar.gz的一些特性Windows下的解壓軟體支援的不好導致每個資料夾下都有 PaxHeader 資料夾 就寫了個遞迴刪除的程式碼
package main import ( "fmt" "os" "path/filepath" ) func delFilelist(path string) { err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error { if ( f == nil ) { return nil //f為空 錯誤不為空 錯誤是檔案不存在 可以忽略 } if f.IsDir() { if f.Name() == "PaxHeader" { err := os.RemoveAll(path) if err != nil { fmt.Println(err) } fmt.Printf("刪除檔案PaxHeader %s\n" ,path) } return nil } //println(path) return nil }) if err != nil { fmt.Printf("walk 錯誤 err: %v\n", err) } } func main(){ root := "D:/mygo/src" delFilelist(root) }