52 lines
895 B
Go
52 lines
895 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"os/user"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
func TrimSuffix(s, suffix string) string {
|
|
if strings.HasSuffix(s, suffix) {
|
|
s = s[:len(s)-len(suffix)]
|
|
}
|
|
return s
|
|
}
|
|
|
|
func main() {
|
|
var searchPath []string
|
|
searchPath = append(searchPath,
|
|
"~/.local/share/Steam/steamapps/compatdata/8500/pfx/drive_c/users/steamuser/My Documents/ EVE/logs/Chatlogs")
|
|
|
|
usr, _ := user.Current()
|
|
dir := usr.HomeDir
|
|
|
|
for _, d := range searchPath {
|
|
|
|
// if has trailing slash, remove it
|
|
d = TrimSuffix(d, "/")
|
|
|
|
// do a unix like expansion if the path starts like `~/`
|
|
if strings.HasPrefix(d, "~/") {
|
|
d = filepath.Join(dir, d[2:])
|
|
}
|
|
f, err := os.Open(d)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
files, err := f.Readdir(-1)
|
|
f.Close()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
for _, file := range files {
|
|
fmt.Printf("%v/%v\n", d, file.Name())
|
|
}
|
|
}
|
|
|
|
}
|