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
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
|
|
}
|