根据 文件夹id 递归查询文件夹下的所有文件

 /**
     * 根据 文件夹id 递归查询文件夹下的所有文件
     * @param folderId
     * @param searchValue  文件名筛选值 可为空
     * @return
     */

    public List<RepositoryFile> getFilesByFolder(String folderId,String searchValue,User user){
        //返回集合
        List<RepositoryFile> reList=new ArrayList<>();
        //查询当前文件夹的权限
        RepositoryCompetence com=getFolderCompetence(user,folderId);
        if(com!=null) {
            //查询本文件夹内的文件
            List<RepositoryFile> files = repositoryFileService.getFilesByFolder(folderId, searchValue);
            //文件添加权限
            for(RepositoryFile file:files){
                file.setCom(com);
            }
            reList.addAll(files);
            //查询本文件夹的子文件夹
            QueryWrapper<RepositoryFolder> ew1 = new QueryWrapper<>();
            ew1.eq("parent_id", folderId);
            List<RepositoryFolder> folders = repositoryFolderService.list(ew1);

            //循环下级文件夹(递归查询下级文件夹的内的文件和下级文件的下级文件夹)
            for (RepositoryFolder folder : folders) {
                reList.addAll(this.getFilesByFolder(folder.getId(), searchValue, user));
            }
        }
        //返回数据
        return  reList;
    };

  

上一篇:openJDK中各种垃圾回收器浅谈


下一篇:Client-go中reflector relist的场景分析