private final TreeSet<Path> selectFilesOnly(Set<Path> selection) {
		final TreeSet<Path> selectionFiles = new TreeSet<>();
		final ArrayDeque<Path> queue = new ArrayDeque<>(selection);
		while (!queue.isEmpty()) {
			final Path p = queue.remove();
			if (p.toFile().isDirectory()) {
				for (final String dir : ((SongData) this.songdata).getDirs(p)) {
					if (dir.equals("..")) {
						continue;
					}
					queue.add(p.resolve(dir));
				}
				for (final String song : ((SongData) this.songdata).getSongs(p)) {
					selectionFiles.add(p.resolve(song));
				}
			} else {
				selectionFiles.add(p);
			}
		}
		return selectionFiles;
	}