35 lines
746 B
Go
35 lines
746 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"reflect"
|
|
"strings"
|
|
)
|
|
|
|
func createFile(dir, fileName string) (*os.File, error) {
|
|
err := os.MkdirAll(dir, os.ModePerm)
|
|
if err != nil {
|
|
log.Fatalf("\nErr: %v", err)
|
|
}
|
|
|
|
filePath := strings.Join([]string{dir, fileName}, "/")
|
|
file, err := os.Create(filePath)
|
|
if err != nil {
|
|
log.Fatalf("\nErr: %v", err)
|
|
}
|
|
|
|
if err := os.Chmod(filePath, os.ModePerm); err != nil {
|
|
log.Fatalf("\nErr: %v", err)
|
|
}
|
|
return file, err
|
|
}
|
|
|
|
func getStructType(structReflectType reflect.Type) reflect.Type {
|
|
newInterface := reflect.New(structReflectType).Interface()
|
|
interfaceValue := reflect.ValueOf(newInterface)
|
|
reflectValue := reflect.Indirect(interfaceValue)
|
|
reflectType := reflectValue.Type()
|
|
return reflectType
|
|
}
|