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
}
