瀏覽代碼

:art: Renaming a directory using the kernel API `/api/file/renameFile` indicates that the file is in use https://github.com/siyuan-note/siyuan/issues/8635

Daniel 2 年之前
父節點
當前提交
938f450097
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      kernel/api/file.go

+ 6 - 0
kernel/api/file.go

@@ -196,6 +196,7 @@ func renameFile(c *gin.Context) {
 	_, err := os.Stat(filePath)
 	_, err := os.Stat(filePath)
 	if os.IsNotExist(err) {
 	if os.IsNotExist(err) {
 		ret.Code = 404
 		ret.Code = 404
+		ret.Msg = err.Error()
 		return
 		return
 	}
 	}
 	if nil != err {
 	if nil != err {
@@ -207,6 +208,11 @@ func renameFile(c *gin.Context) {
 
 
 	newPath := arg["newPath"].(string)
 	newPath := arg["newPath"].(string)
 	newPath = filepath.Join(util.WorkspaceDir, newPath)
 	newPath = filepath.Join(util.WorkspaceDir, newPath)
+	if gulu.File.IsExist(newPath) {
+		ret.Code = 409
+		ret.Msg = "the [newPath] file or directory already exists"
+		return
+	}
 
 
 	if err = filelock.Rename(filePath, newPath); nil != err {
 	if err = filelock.Rename(filePath, newPath); nil != err {
 		logging.LogErrorf("rename file [%s] to [%s] failed: %s", filePath, newPath, err)
 		logging.LogErrorf("rename file [%s] to [%s] failed: %s", filePath, newPath, err)