java.io.FilenameFilter#accept ( )源码实例Demo

下面列出了java.io.FilenameFilter#accept ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: Flink-CEPplus   文件: YarnTestBase.java
/**
 * Locate a file or directory.
 */
public static File findFile(String startAt, FilenameFilter fnf) {
	File root = new File(startAt);
	String[] files = root.list();
	if (files == null) {
		return null;
	}
	for (String file : files) {
		File f = new File(startAt + File.separator + file);
		if (f.isDirectory()) {
			File r = findFile(f.getAbsolutePath(), fnf);
			if (r != null) {
				return r;
			}
		} else if (fnf.accept(f.getParentFile(), f.getName())) {
			return f;
		}
	}
	return null;
}
 
源代码2 项目: qaf   文件: FileUtil.java
public static Collection<File> listFiles(File directory, FilenameFilter filter, boolean recurse) {
	// List of files / directories
	Vector<File> files = new Vector<File>();

	// Get files / directories in the directory
	File[] entries = directory.listFiles();

	// Go over entries
	for (File entry : entries) {
		if ((filter == null) || filter.accept(directory, entry.getName())) {
			files.add(entry);
		}

		// If the file is a directory and the recurse flag
		// is set, recurse into the directory
		if (recurse && entry.isDirectory() && !entry.isHidden()) {
			files.addAll(listFiles(entry, filter, recurse));
		}
	}

	// Return collection of files
	return files;
}
 
源代码3 项目: synopsys-detect   文件: SimpleFileFinder.java
private List<File> findFiles(final File directoryToSearch, final FilenameFilter filenameFilter, final int depth, final boolean findInsideMatchingDirectories) {
    final List<File> foundFiles = new ArrayList<>();
    if (depth < 0) {
        return foundFiles;
    }
    if (Files.isSymbolicLink(directoryToSearch.toPath())) {
        return foundFiles;
    }
    final File[] allFiles = directoryToSearch.listFiles();
    if (allFiles == null) {
        return foundFiles;
    }
    for (final File file : allFiles) {
        final boolean matches = filenameFilter.accept(directoryToSearch, file.getName());
        if (matches) {
            foundFiles.add(file);
        }
        if (!matches || findInsideMatchingDirectories) {
            if (file.isDirectory() && !Files.isSymbolicLink(file.toPath())) {
                foundFiles.addAll(findFiles(file, filenameFilter, depth - 1, findInsideMatchingDirectories));
            }
        }
    }

    return foundFiles;
}
 
源代码4 项目: Sandbox   文件: FileUtil.java
public static Collection<File> getFiles(File folder, FilenameFilter fileFilter, boolean recursive) {
    File[] files = folder.listFiles();
    if (files == null)
        return Collections.emptySet();
    Set<File> allFiles = new HashSet<>();
    for (File f : files) {
        if (recursive && f.isDirectory()) {
            allFiles.addAll(getFiles(f, fileFilter, true));
            continue;
        }
        if (fileFilter.accept(folder, f.getName())) {
            allFiles.add(f);
        }
    }
    return allFiles;
}
 
源代码5 项目: ModTheSpire   文件: OrFilenameFilter.java
/**
 * <p>Determine whether a file is to be accepted or not, based on the
 * contained filters. The file is accepted if any one of the contained
 * filters accepts it. This method stops looping over the contained
 * filters as soon as it encounters one whose <tt>accept()</tt> method
 * returns <tt>true</tt> (implementing a "short-circuited OR"
 * operation.)</p>
 *
 * <p>If the set of contained filters is empty, then this method
 * returns <tt>true</tt>.</p>
 *
 * @param dir   The directory containing the file.
 * @param name  the file name
 *
 * @return <tt>true</tt> if the file matches, <tt>false</tt> if it doesn't
 */
public boolean accept (File dir, String name)
{
    boolean accepted = false;

    if (filters.size() == 0)
        accepted = true;

    else
    {
        for (FilenameFilter filter : filters)
        {
            accepted = filter.accept (dir, name);
            if (accepted)
                break;
        }
    }

    return accepted;
}
 
源代码6 项目: AcgClub   文件: FileUtils.java
/**
 * 获取目录下所有符合filter的文件
 *
 * @param dir 目录
 * @param filter 过滤器
 * @param isRecursive 是否递归进子目录
 * @return 文件链表
 */
public static List<File> listFilesInDirWithFilter(File dir, FilenameFilter filter,
    boolean isRecursive) {
  if (isRecursive) {
    return listFilesInDirWithFilter(dir, filter);
  }
  if (dir == null || !isDir(dir)) {
    return null;
  }
  List<File> list = new ArrayList<>();
  File[] files = dir.listFiles();
  if (files != null && files.length != 0) {
    for (File file : files) {
      if (filter.accept(file.getParentFile(), file.getName())) {
        list.add(file);
      }
    }
  }
  return list;
}
 
源代码7 项目: AcgClub   文件: FileUtils.java
/**
 * 获取目录下所有符合filter的文件包括子目录
 *
 * @param dir 目录
 * @param filter 过滤器
 * @return 文件链表
 */
public static List<File> listFilesInDirWithFilter(File dir, FilenameFilter filter) {
  if (dir == null || !isDir(dir)) {
    return null;
  }
  List<File> list = new ArrayList<>();
  File[] files = dir.listFiles();
  if (files != null && files.length != 0) {
    for (File file : files) {
      if (filter.accept(file.getParentFile(), file.getName())) {
        list.add(file);
      }
      if (file.isDirectory()) {
        list.addAll(listFilesInDirWithFilter(file, filter));
      }
    }
  }
  return list;
}
 
源代码8 项目: recheck   文件: FileUtil.java
public static List<File> listFilesRecursively( final File folder, final FilenameFilter filter ) {
	if ( !folder.isDirectory() ) {
		throw new IllegalArgumentException( "'" + folder + "' is not a directory!" );
	}
	final List<File> result = new ArrayList<>();
	final File[] files = folder.listFiles();
	if ( files == null ) {
		return result;
	}
	for ( final File file : files ) {
		if ( filter.accept( file, file.getName() ) ) {
			result.add( file );
		}
		if ( file.isDirectory() ) {
			result.addAll( listFilesRecursively( file, filter ) );
		}
	}
	return result;
}
 
源代码9 项目: localization_nifi   文件: FileUtils.java
/**
 * Deletes all files (not directories) in the given directory (recursive) that match the given filename filter. If any file cannot be deleted then this is printed at warn to the given logger.
 *
 * @param directory the directory to scan
 * @param filter if null then no filter is used
 * @param logger the logger
 * @param recurse whether to recurse subdirectories or not
 * @param deleteEmptyDirectories default is false; if true will delete directories found that are empty
 */
public static void deleteFilesInDir(final File directory, final FilenameFilter filter, final Logger logger, final boolean recurse, final boolean deleteEmptyDirectories) {
    // ensure the specified directory is actually a directory and that it exists
    if (null != directory && directory.isDirectory()) {
        final File ingestFiles[] = directory.listFiles();
        for (File ingestFile : ingestFiles) {
            boolean process = (filter == null) ? true : filter.accept(directory, ingestFile.getName());
            if (ingestFile.isFile() && process) {
                FileUtils.deleteFile(ingestFile, logger, 3);
            }
            if (ingestFile.isDirectory() && recurse) {
                FileUtils.deleteFilesInDir(ingestFile, filter, logger, recurse, deleteEmptyDirectories);
                if (deleteEmptyDirectories && ingestFile.list().length == 0) {
                    FileUtils.deleteFile(ingestFile, logger, 3);
                }
            }
        }
    }
}
 
源代码10 项目: localization_nifi   文件: FileUtils.java
/**
 * Deletes all files (not directories) in the given directory (recursive)
 * that match the given filename filter. If any file cannot be deleted then
 * this is printed at warn to the given logger.
 *
 * @param directory to delete contents of
 * @param filter if null then no filter is used
 * @param logger to notify
 * @param recurse will look for contents of sub directories.
 * @param deleteEmptyDirectories default is false; if true will delete
 * directories found that are empty
 * @throws IOException if abstract pathname does not denote a directory, or
 * if an I/O error occurs
 */
public static void deleteFilesInDirectory(final File directory, final FilenameFilter filter, final Logger logger, final boolean recurse, final boolean deleteEmptyDirectories) throws IOException {
    // ensure the specified directory is actually a directory and that it exists
    if (null != directory && directory.isDirectory()) {
        final File ingestFiles[] = directory.listFiles();
        if (ingestFiles == null) {
            // null if abstract pathname does not denote a directory, or if an I/O error occurs
            throw new IOException("Unable to list directory content in: " + directory.getAbsolutePath());
        }
        for (File ingestFile : ingestFiles) {
            boolean process = (filter == null) ? true : filter.accept(directory, ingestFile.getName());
            if (ingestFile.isFile() && process) {
                FileUtils.deleteFile(ingestFile, logger, 3);
            }
            if (ingestFile.isDirectory() && recurse) {
                FileUtils.deleteFilesInDirectory(ingestFile, filter, logger, recurse, deleteEmptyDirectories);
                if (deleteEmptyDirectories && ingestFile.list().length == 0) {
                    FileUtils.deleteFile(ingestFile, logger, 3);
                }
            }
        }
    }
}
 
源代码11 项目: XKnife-Android   文件: FileUtils.java
/**
 * 获取目录下所有符合filter的文件包括子目录
 *
 * @param dir    目录
 * @param filter 过滤器
 * @return 文件链表
 */
public static List<File> listFilesInDirWithFilter(File dir, FilenameFilter filter) {
    if (dir == null || !isDir(dir)) return null;
    List<File> list = new ArrayList<>();
    File[] files = dir.listFiles();
    if (files != null && files.length != 0) {
        for (File file : files) {
            if (filter.accept(file.getParentFile(), file.getName())) {
                list.add(file);
            }
            if (file.isDirectory()) {
                list.addAll(listFilesInDirWithFilter(file, filter));
            }
        }
    }
    return list;
}
 
源代码12 项目: Android-UtilCode   文件: FileUtils.java
/**
 * 获取目录下所有符合filter的文件包括子目录
 *
 * @param dir    目录
 * @param filter 过滤器
 * @return 文件链表
 */
public static List<File> listFilesInDirWithFilter(File dir, FilenameFilter filter) {
    if (dir == null || !isDir(dir)) return null;
    List<File> list = new ArrayList<>();
    File[] files = dir.listFiles();
    if (files != null && files.length != 0) {
        for (File file : files) {
            if (filter.accept(file.getParentFile(), file.getName())) {
                list.add(file);
            }
            if (file.isDirectory()) {
                list.addAll(listFilesInDirWithFilter(file, filter));
            }
        }
    }
    return list;
}
 
源代码13 项目: vespa   文件: ZKApplicationPackageTest.java
/**
 * Same as normal listFiles, but use the filter only for normal files
 *
 * @param dir    directory to list files in
 * @param filter A FilenameFilter which decides which files in dir are listed
 * @return an array of Files
 */
protected static File[] listFiles(File dir, FilenameFilter filter) {
    File[] rawList = dir.listFiles();
    List<File> ret = new ArrayList<>();
    if (rawList != null) {
        for (File f : rawList) {
            if (f.isDirectory()) {
                ret.add(f);
            } else {
                if (filter.accept(dir, f.getName())) {
                    ret.add(f);
                }
            }
        }
    }
    return ret.toArray(new File[0]);
}
 
源代码14 项目: pulsar   文件: FileUtils.java
/**
 * Deletes all files (not directories) in the given directory (recursive)
 * that match the given filename filter. If any file cannot be deleted then
 * this is printed at warn to the given logger.
 *
 * @param directory to delete contents of
 * @param filter if null then no filter is used
 * @param logger to notify
 * @param recurse will look for contents of sub directories.
 * @param deleteEmptyDirectories default is false; if true will delete
 * directories found that are empty
 * @throws IOException if abstract pathname does not denote a directory, or
 * if an I/O error occurs
 */
public static void deleteFilesInDirectory(
    final File directory, final FilenameFilter filter, final Logger logger,
    final boolean recurse, final boolean deleteEmptyDirectories) throws IOException {
    // ensure the specified directory is actually a directory and that it exists
    if (null != directory && directory.isDirectory()) {
        final File ingestFiles[] = directory.listFiles();
        if (ingestFiles == null) {
            // null if abstract pathname does not denote a directory, or if an I/O error occurs
            throw new IOException("Unable to list directory content in: " + directory.getAbsolutePath());
        }
        for (File ingestFile : ingestFiles) {
            boolean process = (filter == null) ? true : filter.accept(directory, ingestFile.getName());
            if (ingestFile.isFile() && process) {
                FileUtils.deleteFile(ingestFile, logger, 3);
            }
            if (ingestFile.isDirectory() && recurse) {
                FileUtils.deleteFilesInDirectory(ingestFile, filter, logger, recurse, deleteEmptyDirectories);
                if (deleteEmptyDirectories && ingestFile.list().length == 0) {
                    FileUtils.deleteFile(ingestFile, logger, 3);
                }
            }
        }
    }
}
 
源代码15 项目: XKnife-Android   文件: FileUtils.java
/**
 * 获取目录下所有符合filter的文件
 *
 * @param dir         目录
 * @param filter      过滤器
 * @param isRecursive 是否递归进子目录
 * @return 文件链表
 */
public static List<File> listFilesInDirWithFilter(File dir, FilenameFilter filter, boolean isRecursive) {
    if (isRecursive) return listFilesInDirWithFilter(dir, filter);
    if (dir == null || !isDir(dir)) return null;
    List<File> list = new ArrayList<>();
    File[] files = dir.listFiles();
    if (files != null && files.length != 0) {
        for (File file : files) {
            if (filter.accept(file.getParentFile(), file.getName())) {
                list.add(file);
            }
        }
    }
    return list;
}
 
源代码16 项目: Android-UtilCode   文件: FileUtils.java
/**
 * 获取目录下所有符合filter的文件
 *
 * @param dir         目录
 * @param filter      过滤器
 * @param isRecursive 是否递归进子目录
 * @return 文件链表
 */
public static List<File> listFilesInDirWithFilter(File dir, FilenameFilter filter, boolean isRecursive) {
    if (isRecursive) return listFilesInDirWithFilter(dir, filter);
    if (dir == null || !isDir(dir)) return null;
    List<File> list = new ArrayList<>();
    File[] files = dir.listFiles();
    if (files != null && files.length != 0) {
        for (File file : files) {
            if (filter.accept(file.getParentFile(), file.getName())) {
                list.add(file);
            }
        }
    }
    return list;
}
 
源代码17 项目: RxTools-master   文件: RxFileTool.java
/**
 * 获取目录下所有符合filter的文件
 *
 * @param dir         目录
 * @param filter      过滤器
 * @param isRecursive 是否递归进子目录
 * @return 文件链表
 */
public static List<File> listFilesInDirWithFilter(File dir, FilenameFilter filter, boolean isRecursive) {
    if (isRecursive) return listFilesInDirWithFilter(dir, filter);
    if (dir == null || !isDir(dir)) return null;
    List<File> list = new ArrayList<>();
    File[] files = dir.listFiles();
    for (File file : files) {
        if (filter.accept(file.getParentFile(), file.getName())) {
            list.add(file);
        }
    }
    return list;
}
 
源代码18 项目: hadoop   文件: BlockReportTestBase.java
private List<File> findAllFiles(File top, FilenameFilter mask) {
  if (top == null) return null;
  ArrayList<File> ret = new ArrayList<File>();
  for (File f : top.listFiles()) {
    if (f.isDirectory())
      ret.addAll(findAllFiles(f, mask));
    else if (mask.accept(f, f.getName()))
      ret.add(f);
  }
  return ret;
}
 
源代码19 项目: big-c   文件: BlockReportTestBase.java
private List<File> findAllFiles(File top, FilenameFilter mask) {
  if (top == null) return null;
  ArrayList<File> ret = new ArrayList<File>();
  for (File f : top.listFiles()) {
    if (f.isDirectory())
      ret.addAll(findAllFiles(f, mask));
    else if (mask.accept(f, f.getName()))
      ret.add(f);
  }
  return ret;
}
 
源代码20 项目: ModTheSpire   文件: AndFilenameFilter.java
/**
 * <p>Determine whether a file is to be accepted or not, based on the
 * contained filters. The file is accepted if any one of the contained
 * filters accepts it. This method stops looping over the contained
 * filters as soon as it encounters one whose <tt>accept()</tt> method
 * returns <tt>false</tt> (implementing a "short-circuited AND"
 * operation.)</p>
 *
 * <p>If the set of contained filters is empty, then this method
 * returns <tt>true</tt>.</p>
 *
 * @param dir   The directory containing the file.
 * @param name  the file name
 *
 * @return <tt>true</tt> if the file matches, <tt>false</tt> if it doesn't
 */
public boolean accept (File dir, String name)
{
    boolean accepted = true;

    for (FilenameFilter filter : filters)
    {
        accepted = filter.accept (dir, name);
        if (! accepted)
            break;
    }

    return accepted;
}
 
 方法所在类
 同类方法