private List<QCProjectSet> getProjectSetList(File dir, int negDepth) {
		List<QCProjectSet> result = new ArrayList<>();

		if (negDepth > 0) {
			List<File> folder = dirFolderlist(dir);

			for (File f : folder) {
				if (isProjectSetDirectory(f)) {
					result.add(new QCProjectSet(f, getProjectList(f, MAX_SET_SCAN_DEPTH)));
				} else if (isSingleProjectDirectory(f)) {
					result.add(new QCProjectSet(f, new QCProject(f)));
				} else {
					result.addAll(getProjectSetList(f, negDepth - 1));
				}
			}
		}

		return result;
	}