123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /* ========================================================================
- * JCommon : a free general purpose class library for the Java(tm) platform
- * ========================================================================
- *
- * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
- *
- * Project Info: http://www.jfree.org/jcommon/index.html
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
- * License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
- * USA.
- *
- * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
- * in the United States and other countries.]
- *
- * ------------------
- * FileUtilities.java
- * ------------------
- * (C) Copyright 2000-2004, by Object Refinery Limited.
- *
- * Original Author: David Gilbert (for Object Refinery Limited);
- * Contributor(s): -;
- *
- * $Id: FileUtilities.java,v 1.5 2005/10/18 13:16:02 mungady Exp $
- *
- * Changes (from 5-Nov-2001)
- * -------------------------
- * 05-Nov-2001 : Changed package to com.jrefinery.io.* (DG);
- * 04-Mar-2002 : Renamed Files.java --> FileUtilities.java (DG);
- * 10-Oct-2002 : Fixed errors reported by Checkstyle (DG);
- *
- */
- package org.jfree.io;
- import java.io.File;
- import java.util.StringTokenizer;
- /**
- * A class containing useful utility methods relating to files.
- *
- * @author David Gilbert
- */
- public class FileUtilities {
- /**
- * To prevent unnecessary instantiation.
- */
- private FileUtilities() {
- }
- /**
- * Returns a reference to a file with the specified name that is located
- * somewhere on the classpath. The code for this method is an adaptation
- * of code supplied by Dave Postill.
- *
- * @param name the filename.
- *
- * @return a reference to a file or <code>null</code> if no file could be found.
- */
- public static File findFileOnClassPath(final String name) {
- final String classpath = System.getProperty("java.class.path");
- final String pathSeparator = System.getProperty("path.separator");
- final StringTokenizer tokenizer = new StringTokenizer(classpath, pathSeparator);
- while (tokenizer.hasMoreTokens()) {
- final String pathElement = tokenizer.nextToken();
- final File directoryOrJar = new File(pathElement);
- final File absoluteDirectoryOrJar = directoryOrJar.getAbsoluteFile();
- if (absoluteDirectoryOrJar.isFile()) {
- final File target = new File(absoluteDirectoryOrJar.getParent(), name);
- if (target.exists()) {
- return target;
- }
- }
- else {
- final File target = new File(directoryOrJar, name);
- if (target.exists()) {
- return target;
- }
- }
- }
- return null;
- }
- }
|