public JsonResult DeleteNodes(string ownerId, string path, string nameListStr)
 {
     return(CallService(true, new Action <string, string, string>((p1, p2, p3) =>
     {
         string[] nameList = p3?.Split('/');
         if (nameList?.Length > 0)
         {
             foreach (var name in nameList)
             {
                 var node = _nodeAppService.GetNode(p1, p2, name);
                 if (node == null)
                 {
                     throw new Exception("文件或文件夹不存在");
                 }
                 if (node is FileNode)
                 {
                     var result = _nodeAppService.DeleteNode <FileNode>(p1, p2, name) as FileNode;
                     _storageClient.Remove(result.StorageFileId);
                     _quotaAppService.Decrease(p1, result.Size, result.Id);
                     FileNodeChanged(node as FileNode);
                 }
                 else if (node is FolderNode)
                 {
                     DoDeleteFolder(p1, p2, name);
                     _nodeAppService.DeleteNode <FolderNode>(p1, p2, name);
                 }
             }
         }
     }), ownerId, path, nameListStr));
 }