You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
870 B

package file
import (
"os"
"path/filepath"
)
func FileMove(userName, O_FilePath, N_FilePath string) error {
// 获取main.go所在的目录
currentDir, err := os.Getwd()
if err != nil {
return err
}
baseDir := filepath.Join(currentDir, "file_library")
oldFullFilePath := filepath.Join(baseDir, userName, O_FilePath)
newFullFilePath := filepath.Join(baseDir, userName, N_FilePath)
// 先判断源文件是否存在
_, err = os.Stat(oldFullFilePath)
if err != nil {
return err
}
// 判断目标文件路径的上级目录是否存在,如果不存在则创建(确保目标路径合法)
targetDir := filepath.Dir(newFullFilePath)
err = os.MkdirAll(targetDir, 0755)
if err != nil {
return err
}
// 使用os.Rename进行文件移动操作
err = os.Rename(oldFullFilePath, newFullFilePath)
if err != nil {
return err
}
return nil
}