mirror of https://github.com/cloudreve/Cloudreve
				
				
				
			
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
package util
 | 
						|
 | 
						|
import (
 | 
						|
	"os"
 | 
						|
	"path"
 | 
						|
	"path/filepath"
 | 
						|
	"strings"
 | 
						|
)
 | 
						|
 | 
						|
// DotPathToStandardPath 将","分割的路径转换为标准路径
 | 
						|
func DotPathToStandardPath(path string) string {
 | 
						|
	return "/" + strings.Replace(path, ",", "/", -1)
 | 
						|
}
 | 
						|
 | 
						|
// FillSlash 给路径补全`/`
 | 
						|
func FillSlash(path string) string {
 | 
						|
	if path == "/" {
 | 
						|
		return path
 | 
						|
	}
 | 
						|
	return path + "/"
 | 
						|
}
 | 
						|
 | 
						|
// RemoveSlash 移除路径最后的`/`
 | 
						|
func RemoveSlash(path string) string {
 | 
						|
	if len(path) > 1 {
 | 
						|
		return strings.TrimSuffix(path, "/")
 | 
						|
	}
 | 
						|
	return path
 | 
						|
}
 | 
						|
 | 
						|
// SplitPath 分割路径为列表
 | 
						|
func SplitPath(path string) []string {
 | 
						|
	if len(path) == 0 || path[0] != '/' {
 | 
						|
		return []string{}
 | 
						|
	}
 | 
						|
 | 
						|
	if path == "/" {
 | 
						|
		return []string{"/"}
 | 
						|
	}
 | 
						|
 | 
						|
	pathSplit := strings.Split(path, "/")
 | 
						|
	pathSplit[0] = "/"
 | 
						|
	return pathSplit
 | 
						|
}
 | 
						|
 | 
						|
// FormSlash 将path中的反斜杠'\'替换为'/'
 | 
						|
func FormSlash(old string) string {
 | 
						|
	return path.Clean(strings.ReplaceAll(old, "\\", "/"))
 | 
						|
}
 | 
						|
 | 
						|
// RelativePath 获取相对可执行文件的路径
 | 
						|
func RelativePath(name string) string {
 | 
						|
	if filepath.IsAbs(name) {
 | 
						|
		return name
 | 
						|
	}
 | 
						|
	e, _ := os.Executable()
 | 
						|
	return filepath.Join(filepath.Dir(e), name)
 | 
						|
}
 |