2014-05-07 13:06:24 +08:00
|
|
|
package lea
|
|
|
|
|
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
"path/filepath"
|
|
|
|
"os"
|
|
|
|
)
|
|
|
|
|
|
|
|
// 分离文件名与扩展名(包含.)
|
|
|
|
func SplitFilename(filename string) (baseName, ext string) {
|
|
|
|
baseName = filename
|
|
|
|
// 找到最后一个'.'
|
|
|
|
ext = SubstringByte(filename, strings.LastIndex(filename, "."))
|
|
|
|
baseName = strings.TrimRight(filename, ext)
|
|
|
|
ext = strings.ToLower(ext)
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// 转换文件的格式
|
|
|
|
// toExt包含.
|
|
|
|
func TransferExt(path string, toExt string) string {
|
|
|
|
dir := filepath.Dir(path) + "/" // 文件路径
|
|
|
|
name := filepath.Base(path) // 文件名 a.jpg
|
|
|
|
// 获取文件名与路径
|
|
|
|
baseName, _ := SplitFilename(name)
|
|
|
|
return dir + baseName + toExt
|
|
|
|
}
|
|
|
|
|
|
|
|
func GetFilename(path string) string {
|
|
|
|
return filepath.Base(path)
|
|
|
|
}
|
|
|
|
|
2014-06-28 23:07:34 +08:00
|
|
|
// file size
|
|
|
|
// length in bytes
|
|
|
|
func GetFilesize(path string) int64 {
|
|
|
|
fileinfo, err := os.Stat(path)
|
|
|
|
if err == nil {
|
|
|
|
return fileinfo.Size()
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2014-05-07 13:06:24 +08:00
|
|
|
// 清空dir下所有的文件和文件夹
|
|
|
|
// RemoveAll会清空本文件夹, 所以还要创建之
|
|
|
|
func ClearDir(dir string) bool {
|
|
|
|
err := os.RemoveAll(dir)
|
|
|
|
if err != nil {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
err = os.MkdirAll(dir, 0777)
|
|
|
|
if err != nil {
|
|
|
|
return false
|
|
|
|
}
|
|
|
|
return true
|
2014-06-28 23:07:34 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
// list dir's all file, return filenames
|
|
|
|
func ListDir(dir string) []string {
|
|
|
|
f, err := os.Open(dir)
|
|
|
|
if err != nil {
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
names, _ := f.Readdirnames(0)
|
|
|
|
return names
|
2014-05-07 13:06:24 +08:00
|
|
|
}
|