Class FilenameUtils

java.lang.Object
org.apache.tika.io.FilenameUtils

public class FilenameUtils extends Object
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final char[]
    Reserved characters
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    This is a duplication of the algorithm and functionality available in commons io FilenameUtils.
    static String
    Scans the given file name for reserved characters on different OSs and file systems and returns a sanitized version of the name with the reserved chars replaced by their hexadecimal value.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • RESERVED_FILENAME_CHARACTERS

      public static final char[] RESERVED_FILENAME_CHARACTERS
      Reserved characters
  • Constructor Details

    • FilenameUtils

      public FilenameUtils()
  • Method Details

    • normalize

      public static String normalize(String name)
      Scans the given file name for reserved characters on different OSs and file systems and returns a sanitized version of the name with the reserved chars replaced by their hexadecimal value. For example why?.zip will be converted into why%3F.zip
      Parameters:
      name - the file name to be normalized - NOT NULL
      Returns:
      the normalized file name
      Throws:
      IllegalArgumentException - if name is null
    • getName

      public static String getName(String path)
      This is a duplication of the algorithm and functionality available in commons io FilenameUtils. If Java's File were able handle Windows file paths correctly in linux, we wouldn't need this.

      The goal of this is to get a filename from a path. The package parsers and some other embedded doc extractors could put anything into Metadata.RESOURCE_NAME_KEY.

      If a careless client used that filename as if it were a filename and not a path when writing embedded files, bad things could happen. Consider: "../../../my_ppt.ppt".

      Consider using this in combination with normalize(String).

      Parameters:
      path - path to strip
      Returns:
      empty string or a filename, never null