package jalview.util; import java.io.File; import java.io.IOException; /** * Miscellaneous file-related functions */ public final class FileUtils { /** * Answers the executable file for the given command, or null if not found or * not executable. The path to the executable is the command name prefixed by * the given folder path, optionally with .exe appended. * * @param cmd * command short name, for example hmmbuild * @param binaryPath * parent folder for the executable * @return */ public static File getExecutable(String cmd, String binaryPath) { File file = new File(binaryPath, cmd); if (!file.canExecute()) { file = new File(binaryPath, cmd + ".exe"); { if (!file.canExecute()) { file = null; } } } return file; } /** * Answers the path to the folder containing the given executable file, by * searching the PATH environment variable. Answers null if no such executable * can be found. * * @param cmd * @return */ public static String getPathTo(String cmd) { String paths = System.getenv("PATH"); // backslash is to escape regular expression argument for (String path : paths.split("\\" + File.pathSeparator)) { if (getExecutable(cmd, path) != null) { return path; } } return null; } /** * A convenience method to create a temporary file that is deleted on exit of * the JVM * * @param prefix * @param suffix * @return * @throws IOException */ public static File createTempFile(String prefix, String suffix) throws IOException { File f = File.createTempFile(prefix, suffix); f.deleteOnExit(); return f; } }