public static String getName(final String path) {

        if (path == null || path.isEmpty()) {
            return StringUtils.EMPTY;
        }
        int unix = path.lastIndexOf("/");
        int windows = path.lastIndexOf("\\");
        //some macintosh file names are stored with : as the delimiter
        //also necessary to properly handle C:somefilename
        int colon = path.lastIndexOf(":");
        String cand = path.substring(Math.max(colon, Math.max(unix, windows)) + 1);
        if (cand.equals("..") || cand.equals(".")) {
            return StringUtils.EMPTY;
        }
        return cand;
    }
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.
<p>
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 TikaCoreProperties.RESOURCE_NAME_KEY.
<p>
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".
<p>
Consider using this in combination with {@link #normalize(String)}.

@param path path to strip
@return empty string or a filename, never null
tika-core/src/main/java/org/apache/tika/io/FilenameUtils.java