@@ -271,29 +271,35 @@ func (y *Cloud189PC) Rename(ctx context.Context, srcObj model.Obj, newName strin
271271 queryParam ["familyId" ] = y .FamilyID
272272 }
273273
274- var newObj model.Obj
275- switch f := srcObj .(type ) {
274+ switch srcObj .(type ) {
276275 case * Cloud189File :
277276 fullUrl += "/renameFile.action"
278277 queryParam ["fileId" ] = srcObj .GetID ()
279278 queryParam ["destFileName" ] = newName
280- newObj = & Cloud189File {Icon : f .Icon } // 复用预览
281279 case * Cloud189Folder :
282280 fullUrl += "/renameFolder.action"
283281 queryParam ["folderId" ] = srcObj .GetID ()
284282 queryParam ["destFolderName" ] = newName
285- newObj = & Cloud189Folder {}
286283 default :
287284 return nil , errs .NotSupport
288285 }
289-
286+ var resp RenameResp
290287 _ , err := y .request (fullUrl , method , func (req * resty.Request ) {
291288 req .SetContext (ctx ).SetQueryParams (queryParam )
292- }, nil , newObj , isFamily )
289+ }, nil , resp , isFamily )
293290 if err != nil {
291+ if resp .ResCode == "FileAlreadyExists" {
292+ return nil , errs .ObjectAlreadyExists
293+ }
294294 return nil , err
295295 }
296- return newObj , nil
296+ switch f := srcObj .(type ) {
297+ case * Cloud189File :
298+ return resp .toFile (f ), nil
299+ case * Cloud189Folder :
300+ return resp .toFolder (), nil
301+ }
302+ return nil , errs .NotSupport
297303}
298304
299305func (y * Cloud189PC ) Copy (ctx context.Context , srcObj , dstDir model.Obj ) error {
0 commit comments