Class SymbolicLinkFileFilter

java.lang.Object
org.apache.commons.io.filefilter.AbstractFileFilter
org.apache.commons.io.filefilter.SymbolicLinkFileFilter
All Implemented Interfaces:
FileFilter, FilenameFilter, Serializable, FileVisitor<Path>, PathFilter, PathVisitor, IOFileFilter

public class SymbolicLinkFileFilter extends AbstractFileFilter implements Serializable
This filter accepts Files that are symbolic links.

For example, here is how to print out a list of the real files within the current directory:

Using Classic IO

 File dir = FileUtils.current();
 String[] files = dir.list(SymbolicLinkFileFilter.INSTANCE);
 for (String file : files) {
     System.out.println(file);
 }
 

Using NIO

 final Path dir = PathUtils.current();
 final AccumulatorPathVisitor visitor = AccumulatorPathVisitor.withLongCounters(SymbolicLinkFileFilter.INSTANCE);
 //
 // Walk one dir
 Files.walkFileTree(dir, Collections.emptySet(), 1, visitor);
 System.out.println(visitor.getPathCounters());
 System.out.println(visitor.getFileList());
 //
 visitor.getPathCounters().reset();
 //
 // Walk dir tree
 Files.walkFileTree(dir, visitor);
 System.out.println(visitor.getPathCounters());
 System.out.println(visitor.getDirList());
 System.out.println(visitor.getFileList());
 

Deprecating Serialization

Serialization is deprecated and will be removed in 3.0.

Since:
2.11.0
See Also:
  • Field Details

  • Constructor Details

    • SymbolicLinkFileFilter

      protected SymbolicLinkFileFilter()
      Restrictive constructor.
    • SymbolicLinkFileFilter

      public SymbolicLinkFileFilter(FileVisitResult onAccept, FileVisitResult onReject)
      Constructs a new instance.
      Parameters:
      onAccept - What to do on acceptance.
      onReject - What to do on rejection.
      Since:
      2.12.0.
  • Method Details

    • accept

      public boolean accept(File file)
      Checks to see if the file is a symbolic link.
      Specified by:
      accept in interface FileFilter
      Specified by:
      accept in interface IOFileFilter
      Overrides:
      accept in class AbstractFileFilter
      Parameters:
      file - the File to check
      Returns:
      true if the file exists and is a symbolic link to either another file or a directory, false otherwise.
    • accept

      public FileVisitResult accept(Path path, BasicFileAttributes attributes)
      Checks to see if the file is a file.
      Specified by:
      accept in interface IOFileFilter
      Specified by:
      accept in interface PathFilter
      Parameters:
      path - the File Path to check
      attributes - the file's basic attributes (TODO may be null).
      Returns:
      true if the file exists and is a symbolic link to either another file or a directory.
    • isSymbolicLink

      boolean isSymbolicLink(Path filePath)
      Delegates to Files.isSymbolicLink(Path) for testing.

      Using package access for unit tests. To facilitate unit testing, all calls to test if the file is a symbolic should go through this method. (See the unit test for why.)

      Parameters:
      filePath - The filePath to test
      Returns:
      true if the file exists and is a symbolic link to either a file or directory, false otherwise.