62 lines
1.1 KiB
Go
62 lines
1.1 KiB
Go
package osutils
|
|
|
|
import (
|
|
"io/fs"
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"path"
|
|
"path/filepath"
|
|
"strings"
|
|
)
|
|
|
|
func IsDirectory(path string) (bool, error) {
|
|
fileInfo, err := os.Stat(path)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return fileInfo.IsDir(), err
|
|
}
|
|
|
|
func RecursiceWalk(pathToWalk string) ([]string, error) {
|
|
paths := []string{}
|
|
err := filepath.Walk(pathToWalk,
|
|
func(path string, info os.FileInfo, err error) error {
|
|
if err != nil {
|
|
println(err)
|
|
return err
|
|
}
|
|
// fmt.Println(path[len(path)-4:])
|
|
libBool, err := IsDirectory(path)
|
|
if err != nil {
|
|
println("error in checking lib or dir")
|
|
}
|
|
if !libBool {
|
|
// println(path)
|
|
paths = append(paths, path)
|
|
}
|
|
return nil
|
|
})
|
|
if err != nil {
|
|
log.Println(err)
|
|
}
|
|
return paths, nil
|
|
}
|
|
|
|
func ListDir(path string) ([]fs.FileInfo, error) {
|
|
files, err := ioutil.ReadDir(path)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
return []fs.FileInfo{}, err
|
|
}
|
|
return files, nil
|
|
}
|
|
|
|
func GetParentDir(filePath string) (string, error) {
|
|
cuttedPath := strings.Split(filePath, "/")
|
|
cuttedPath = cuttedPath[:len(cuttedPath)-1]
|
|
finalPath := path.Join("/", path.Join(cuttedPath...))
|
|
return finalPath, nil
|
|
}
|