/** * Construct an instance with a directory and a file filter and an optional * limit on the <i>depth</i> navigated to. * <p> * The filters control which files and directories will be navigated to as part * of the walk. This constructor uses {@link FileFilterUtils#makeDirectoryOnly(IOFileFilter)} * and {@link FileFilterUtils#makeFileOnly(IOFileFilter)} internally to combine the filters. * A {@code null} filter means that no filtering should occur. * * @param directoryFilter the filter to apply to directories, null means visit all directories * @param fileFilter the filter to apply to files, null means visit all files * @param depthLimit controls how <i>deep</i> the hierarchy is * navigated to (less than 0 means unlimited) */ protected DirectoryWalker(IOFileFilter directoryFilter, IOFileFilter fileFilter, final int depthLimit) { if (directoryFilter == null && fileFilter == null) { this.filter = null; } else { directoryFilter = directoryFilter != null ? directoryFilter : TrueFileFilter.TRUE; fileFilter = fileFilter != null ? fileFilter : TrueFileFilter.TRUE; directoryFilter = FileFilterUtils.makeDirectoryOnly(directoryFilter); fileFilter = FileFilterUtils.makeFileOnly(fileFilter); this.filter = FileFilterUtils.or(directoryFilter, fileFilter); } this.depthLimit = depthLimit; }
@Test public void testFileFilterUtils_or() throws Exception { final IOFileFilter trueFilter = TrueFileFilter.INSTANCE; final IOFileFilter falseFilter = FalseFileFilter.INSTANCE; final File testFile = new File( "foo.test" ); assertFiltering(FileFilterUtils.or(trueFilter, trueFilter), testFile, true); assertFiltering(FileFilterUtils.or(trueFilter, trueFilter, falseFilter), testFile, true); assertFiltering(FileFilterUtils.or(falseFilter, trueFilter), testFile, true); assertFiltering(FileFilterUtils.or(falseFilter, falseFilter, falseFilter), testFile, false); }
FileFilterUtils.or(effFileFilter, effDirFilter), true); return files;
@Override public void cleanupOldMetaFiles() { logger.info("Deleting any old META_V2 files if any"); IOFileFilter fileNameFilter = FileFilterUtils.and( FileFilterUtils.prefixFileFilter(MetaFileInfo.META_FILE_PREFIX), FileFilterUtils.or( FileFilterUtils.suffixFileFilter(MetaFileInfo.META_FILE_SUFFIX), FileFilterUtils.suffixFileFilter( MetaFileInfo.META_FILE_SUFFIX + ".tmp"))); Collection<File> files = FileUtils.listFiles(metaFileDirectory.toFile(), fileNameFilter, null); files.stream() .filter(File::isFile) .forEach( file -> { logger.debug( "Deleting old META_V2 file found: {}", file.getAbsolutePath()); file.delete(); }); }
private void copyLocalNativeLibraries( final File localNativeLibrariesDirectory, final File destinationDirectory ) throws MojoExecutionException { getLog().debug( "Copying existing native libraries from " + localNativeLibrariesDirectory ); try { IOFileFilter libSuffixFilter = FileFilterUtils.suffixFileFilter( ".so" ); IOFileFilter gdbserverNameFilter = FileFilterUtils.nameFileFilter( "gdbserver" ); IOFileFilter orFilter = FileFilterUtils.or( libSuffixFilter, gdbserverNameFilter ); IOFileFilter libFiles = FileFilterUtils.and( FileFileFilter.FILE, orFilter ); FileFilter filter = FileFilterUtils.or( DirectoryFileFilter.DIRECTORY, libFiles ); org.apache.commons.io.FileUtils .copyDirectory( localNativeLibrariesDirectory, destinationDirectory, filter ); } catch ( IOException e ) { getLog().error( "Could not copy native libraries: " + e.getMessage(), e ); throw new MojoExecutionException( "Could not copy native dependency.", e ); } }
FileFilterUtils.or(effFileFilter, effDirFilter), false); return files;
protected Collection<File> getColumnfamilyFiles(Instant snapshotInstant, File columnfamilyDir) { // Find all the files in columnfamily folder which is : // 1. Not a temp file. // 2. Is a file. (we don't care about directories) // 3. Is older than snapshot time, as new files keep getting created after taking a // snapshot. IOFileFilter tmpFileFilter1 = FileFilterUtils.suffixFileFilter(TMP_EXT); IOFileFilter tmpFileFilter2 = FileFilterUtils.asFileFilter( pathname -> tmpFilePattern.matcher(pathname.getName()).matches()); IOFileFilter tmpFileFilter = FileFilterUtils.or(tmpFileFilter1, tmpFileFilter2); // Here we are allowing files which were more than // @link{IConfiguration#getForgottenFileGracePeriodDays}. We do this to allow cassandra // to clean up any files which were generated as part of repair/compaction and cleanup // thread has not already deleted. // Refer to https://issues.apache.org/jira/browse/CASSANDRA-6756 and // https://issues.apache.org/jira/browse/CASSANDRA-7066 // for more information. IOFileFilter ageFilter = FileFilterUtils.ageFileFilter( snapshotInstant .minus(config.getForgottenFileGracePeriodDays(), ChronoUnit.DAYS) .toEpochMilli()); IOFileFilter fileFilter = FileFilterUtils.and( FileFilterUtils.notFileFilter(tmpFileFilter), FileFilterUtils.fileFileFilter(), ageFilter); return FileUtils.listFiles(columnfamilyDir, fileFilter, null); }
assertFiltering(filter, new File("fred.exe"), false); filter = FileFilterUtils.or( FileFilterUtils.suffixFileFilter( "tes" ), FileFilterUtils.suffixFileFilter( "est" ) );
@Before public void setUp() throws Exception { testDir = temporaryFolder.getRoot(); final IOFileFilter files = FileFilterUtils.fileFileFilter(); final IOFileFilter javaSuffix = FileFilterUtils.suffixFileFilter(".java"); final IOFileFilter fileFilter = FileFilterUtils.and(files, javaSuffix); final IOFileFilter directories = FileFilterUtils.directoryFileFilter(); final IOFileFilter visible = HiddenFileFilter.VISIBLE; final IOFileFilter dirFilter = FileFilterUtils.and(directories, visible); final IOFileFilter filter = FileFilterUtils.or(dirFilter, fileFilter); createObserver(testDir, filter); }
private static IOFileFilter initMosaicSupportFilesFilter() { IOFileFilter filesFilter = FileFilterUtils.or( FileFilterUtils.suffixFileFilter("properties"), FileFilterUtils.suffixFileFilter("shp"), FileFilterUtils.suffixFileFilter("dbf"), FileFilterUtils.suffixFileFilter("sbn"), FileFilterUtils.suffixFileFilter("sbx"), FileFilterUtils.suffixFileFilter("shx"), FileFilterUtils.suffixFileFilter("qix"), FileFilterUtils.suffixFileFilter("lyr"), FileFilterUtils.suffixFileFilter("prj"), FileFilterUtils.suffixFileFilter(Utils.SAMPLE_IMAGE_NAME), FileFilterUtils.suffixFileFilter(Utils.SAMPLE_IMAGE_NAME_LEGACY), FileFilterUtils.suffixFileFilter("db")); return filesFilter; }
private void backupRootFolder(String folderName, IOFileFilter fileFilter) throws IOException { final File srcDirectory = new File(hudsonHome.getAbsolutePath(), folderName); if (srcDirectory.exists() && srcDirectory.isDirectory()) { LOGGER.fine(String.format("Backing up %s...", folderName)); final File destDirectory = new File(backupDirectory.getAbsolutePath(), folderName); IOFileFilter filter = FileFilterUtils.and( fileFilter, getFileAgeDiffFilter(), getExcludedFilesFilter()); filter = FileFilterUtils.or(filter, DirectoryFileFilter.DIRECTORY); FileUtils.copyDirectory(srcDirectory, destDirectory, filter); LOGGER.fine(String.format("DONE backing up %s.", folderName)); } }
private static IOFileFilter initCleanUpFilter() { IOFileFilter filesFilter = FileFilterUtils.or( FileFilterUtils.suffixFileFilter("properties"), FileFilterUtils.suffixFileFilter("shp"), FileFilterUtils.suffixFileFilter("dbf"), FileFilterUtils.suffixFileFilter("sbn"), FileFilterUtils.suffixFileFilter("sbx"), FileFilterUtils.suffixFileFilter("shx"), FileFilterUtils.suffixFileFilter("qix"), FileFilterUtils.suffixFileFilter("lyr"), FileFilterUtils.suffixFileFilter("prj"), FileFilterUtils.suffixFileFilter("ncx"), FileFilterUtils.suffixFileFilter("gbx9"), FileFilterUtils.suffixFileFilter("ncx2"), FileFilterUtils.suffixFileFilter("ncx3"), FileFilterUtils.nameFileFilter("error.txt"), FileFilterUtils.nameFileFilter("_metadata"), FileFilterUtils.suffixFileFilter(Utils.SAMPLE_IMAGE_NAME), FileFilterUtils.suffixFileFilter(Utils.SAMPLE_IMAGE_NAME_LEGACY), FileFilterUtils.nameFileFilter("error.txt.lck"), FileFilterUtils.suffixFileFilter("xml"), FileFilterUtils.suffixFileFilter("db")); return filesFilter; }
private void backupBuildArchive(final File buildSrcDir, final File buildDestDir) throws IOException { if (plugin.isBackupBuildArchive()) { final File archiveSrcDir = new File(buildSrcDir, ARCHIVE_DIR_NAME); if (archiveSrcDir.isDirectory()) { final IOFileFilter filter = FileFilterUtils.or( FileFilterUtils.directoryFileFilter(), FileFilterUtils.and(FileFileFilter.FILE, getFileAgeDiffFilter())); FileUtils.copyDirectory(archiveSrcDir, new File(buildDestDir, "archive"), filter); } } }
private Repository getWebInfDirectory(@Nonnull MavenProject project) throws MojoExecutionException { final File webAppDirectory = calculateWebAppDirectory(project, false); final File directory = new File(webAppDirectory, "WEB-INF"); IOFileFilter fileFilter = notFileFilter(or( asFileFilter(new SubDirectoryFilter(directory, "lib")), asFileFilter(new SubDirectoryFilter(directory, "classes"))) ); return new Repository(directory, fileFilter); }
private static FileFilter getFileFilter(String suffix) { IOFileFilter dirFilter = FileFilterUtils.and(FileFilterUtils.directoryFileFilter(), HiddenFileFilter.VISIBLE); IOFileFilter fileFilter = FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter(suffix, IOCase.INSENSITIVE)); return FileFilterUtils.or(dirFilter, fileFilter); }
private static FileFilter getFileFilter(String suffix) { IOFileFilter dirFilter = FileFilterUtils.and(FileFilterUtils.directoryFileFilter(), HiddenFileFilter.VISIBLE); IOFileFilter fileFilter = FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter(suffix, IOCase.INSENSITIVE)); return FileFilterUtils.or(dirFilter, fileFilter); }
private void backupJobConfigFor(final File jobDirectory, final File jobBackupDirectory) throws IOException { final IOFileFilter filter = FileFilterUtils.and( FileFilterUtils.or( FileFilterUtils.suffixFileFilter(XML_FILE_EXTENSION), FileFilterUtils.nameFileFilter(SVN_CREDENTIALS_FILE_NAME), FileFilterUtils.nameFileFilter(SVN_EXTERNALS_FILE_NAME)), getFileAgeDiffFilter(), getExcludedFilesFilter()); FileUtils.copyDirectory(jobDirectory, jobBackupDirectory, filter); backupNextBuildNumberFile(jobDirectory, jobBackupDirectory); }
private static FileFilter getAllResourcesFilter() { IOFileFilter dirFilter = FileFilterUtils.and(FileFilterUtils.directoryFileFilter(), HiddenFileFilter.VISIBLE); IOFileFilter fileFilter = FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.notFileFilter(new RegexFileFilter("^.*\\.class$"))); return FileFilterUtils.or(dirFilter, fileFilter); }
private static FileFilter getAllResourcesFilter() { IOFileFilter dirFilter = FileFilterUtils.and(FileFilterUtils.directoryFileFilter(), HiddenFileFilter.VISIBLE); IOFileFilter fileFilter = FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.notFileFilter(new RegexFileFilter("^.*\\.class$"))); return FileFilterUtils.or(dirFilter, fileFilter); }