/*******************************************************************************
* Copyright 2012 Geoscience Australia
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package au.gov.ga.earthsci.worldwind.common.util;
/**
* Utilities for working with files
*/
public class FileUtil
{
/**
* Strip file extensions from the provided filename.
* <p/>
* A file extension if defined as anything after the last period '.'
*
* @param filename The name to strip extensions from
*
* @return The provided file name, stripped of any file extensions
*/
public static String stripExtension(String filename)
{
if (Util.isBlank(filename))
{
return null;
}
if (filename.lastIndexOf('.') == -1)
{
return filename;
}
return filename.substring(0, filename.lastIndexOf('.'));
}
/**
* Return the file extension of the provided filename, or <code>null</code> if
* one does not exist.
* <p/>
* A file extension if defined as anything after the last period '.'
* <p/>
* The returned extension does <b>not</b> include the '.' character.
*
* @return The file extension of the provided filename, or <code>null</code> if none exists
*/
public static String getExtension(String filename)
{
if (Util.isBlank(filename))
{
return null;
}
if (filename.lastIndexOf('.') == -1)
{
return null;
}
return filename.substring(filename.lastIndexOf('.')+1);
}
/**
* Returns whether or not the provided filename has the provided extension.
* <p/>
* Comparisons are case-insensitive, and '.' characters are ignored.
*
* @return <code>true</code> if the provided file has the provided extension. <code>false</code> otherwise.
*/
public static boolean hasExtension(String filename, String extension)
{
if (Util.isBlank(extension))
{
return false;
}
String fileExtension = getExtension(filename);
if (Util.isBlank(fileExtension))
{
return false;
}
return fileExtension.equalsIgnoreCase(extension.replace(".", ""));
}
public static String getFilename(String filename)
{
if (Util.isBlank(filename))
{
return null;
}
filename = filename.replace('\\', '/');
if (filename.lastIndexOf('/') == -1)
{
return null;
}
return filename.substring(filename.lastIndexOf('/') + 1);
}
}