Fix: folder with the same name should not be created

This commit is contained in:
HFO4
2019-11-27 19:14:13 +08:00
parent b3ef833afd
commit 0982347f40
5 changed files with 17 additions and 3 deletions

View File

@@ -12,7 +12,8 @@ var (
ErrInsufficientCapacity = errors.New("容量空间不足")
ErrIllegalObjectName = errors.New("目标名称非法")
ErrInsertFileRecord = serializer.NewError(serializer.CodeDBError, "无法插入文件记录", nil)
ErrFileExisted = errors.New("同名文件已存在")
ErrFileExisted = serializer.NewError(serializer.CodeObjectExist, "同名文件已存在", nil)
ErrFolderExisted = serializer.NewError(serializer.CodeObjectExist, "同名目录已存在", nil)
ErrPathNotExist = serializer.NewError(404, "路径不存在", nil)
ErrObjectNotExist = serializer.NewError(404, "文件不存在", nil)
ErrIO = serializer.NewError(serializer.CodeIOFailed, "无法读取文件数据", nil)

View File

@@ -107,6 +107,12 @@ func (fs *FileSystem) CreateDirectory(ctx context.Context, fullPath string) erro
return ErrPathNotExist
}
// 是否有同名目录
b, _ := fs.IsPathExist(fullPath)
if b {
return ErrFolderExisted
}
// 是否有同名文件
if ok, _ := fs.IsFileExist(path.Join(base, dir)); ok {
return ErrFileExisted

View File

@@ -50,6 +50,8 @@ const (
CodeUploadFailed = 40002
// CodeCreateFolderFailed 目录创建失败
CodeCreateFolderFailed = 40003
// CodeObjectExist 对象已存在
CodeObjectExist = 40004
// CodeDBError 数据库操作失败
CodeDBError = 50001
// CodeEncryptError 加密失败