Finish the mirror feature. Finish the prototype of zip compress.

This commit is contained in:
zicla
2019-04-28 22:18:42 +08:00
parent a4f28cca30
commit 6e0078e1d8
25 changed files with 800 additions and 128 deletions

View File

@ -7,22 +7,23 @@ import (
"io"
"io/ioutil"
"os"
"os/user"
"path/filepath"
"runtime"
"strings"
)
//判断文件或文件夹是否已经存在
func PathExists(path string) (bool, error) {
func PathExists(path string) bool {
_, err := os.Stat(path)
if err == nil {
return true, nil
return true
} else {
if os.IsNotExist(err) {
return false
} else {
panic(result.BadRequest(err.Error()))
}
}
if os.IsNotExist(err) {
return false, nil
}
return false, err
}
//获取GOPATH路径
@ -58,21 +59,12 @@ func GetHomePath() string {
}
exPath := filepath.Dir(ex)
GetDevHomePath()
//如果exPath中包含了 /private/var/folders 我们认为是在Mac的开发环境中
macDev := strings.HasPrefix(exPath, "/private/var/folders")
if macDev {
if EnvMacDevelopment() {
exPath = GetDevHomePath() + "/tmp"
}
//如果exPath中包含了 \\AppData\\Local\\Temp 我们认为是在Win的开发环境中
systemUser, err := user.Current()
if systemUser != nil {
winDev := strings.HasPrefix(exPath, systemUser.HomeDir+"\\AppData\\Local\\Temp")
if winDev {
exPath = GetDevHomePath() + "/tmp"
}
if EnvWinDevelopment() {
exPath = GetDevHomePath() + "/tmp"
}
return exPath
@ -84,12 +76,10 @@ func GetHtmlPath() string {
homePath := GetHomePath()
filePath := homePath + "/html"
exists, err := PathExists(filePath)
if err != nil {
panic("判断上传文件是否存在时出错!")
}
exists := PathExists(filePath)
if !exists {
err = os.MkdirAll(filePath, 0777)
err := os.MkdirAll(filePath, 0777)
if err != nil {
panic("创建上传文件夹时出错!")
}
@ -101,13 +91,11 @@ func GetHtmlPath() string {
//如果文件夹存在就不管,不存在就创建。 例如:/var/www/matter
func MakeDirAll(dirPath string) string {
exists, err := PathExists(dirPath)
if err != nil {
panic("判断文件是否存在时出错!")
}
exists := PathExists(dirPath)
if !exists {
//TODO:文件权限需要进一步考虑
err = os.MkdirAll(dirPath, 0777)
err := os.MkdirAll(dirPath, 0777)
if err != nil {
panic("创建文件夹时出错!")
}
@ -178,16 +166,13 @@ func DeleteEmptyDirRecursive(dirPath string) {
}
}
//移除某个文件夹。 例如:/var/www/matter => /var/www
//移除某个文件夹。
func RemoveDirectory(dirPath string) string {
exists, err := PathExists(dirPath)
if err != nil {
panic("判断文件是否存在时出错!")
}
exists := PathExists(dirPath)
if exists {
err = os.Remove(dirPath)
err := os.Remove(dirPath)
if err != nil {
panic("删除文件夹时出错!")
}
@ -202,12 +187,10 @@ func GetConfPath() string {
homePath := GetHomePath()
filePath := homePath + "/conf"
exists, err := PathExists(filePath)
if err != nil {
panic("判断日志文件夹是否存在时出错!")
}
exists := PathExists(filePath)
if !exists {
err = os.MkdirAll(filePath, 0777)
err := os.MkdirAll(filePath, 0777)
if err != nil {
panic("创建日志文件夹时出错!")
}
@ -222,12 +205,10 @@ func GetLogPath() string {
homePath := GetHomePath()
filePath := homePath + "/log"
exists, err := PathExists(filePath)
if err != nil {
panic("判断日志文件夹是否存在时出错!")
}
exists := PathExists(filePath)
if !exists {
err = os.MkdirAll(filePath, 0777)
err := os.MkdirAll(filePath, 0777)
if err != nil {
panic("创建日志文件夹时出错!")
}