com.jaeksoft.searchlib.util.FileUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of opensearchserver Show documentation
Show all versions of opensearchserver Show documentation
OpenSearchServer is a powerful, enterprise-class, search engine program. Using the web user interface, the crawlers (web, file, database, ...) and the REST/RESTFul API you will be able to integrate quickly and easily advanced full-text search capabilities in your application. OpenSearchServer runs on Windows and Linux/Unix/BSD.
The newest version!
/**
* License Agreement for OpenSearchServer
*
* Copyright (C) 2011-2013 Emmanuel Keller / Jaeksoft
*
* http://www.open-search-server.com
*
* This file is part of OpenSearchServer.
*
* OpenSearchServer is free software: you can redistribute it and/or
* modify it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenSearchServer 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenSearchServer.
* If not, see .
**/
package com.jaeksoft.searchlib.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.Comparator;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FilenameUtils;
import com.jaeksoft.searchlib.Logging;
public class FileUtils extends org.apache.commons.io.FileUtils {
public final static class LastModifiedAscComparator implements
Comparator {
@Override
final public int compare(File f1, File f2) {
Long l1 = f1.lastModified();
Long l2 = f2.lastModified();
return l1.compareTo(l2);
}
}
public final static class LastModifiedDescComparator implements
Comparator {
@Override
final public int compare(File f1, File f2) {
Long l1 = f1.lastModified();
Long l2 = f2.lastModified();
return l2.compareTo(l1);
}
}
public final static File[] sortByLastModified(File[] files, boolean desc) {
if (desc)
Arrays.sort(files, new LastModifiedDescComparator());
else
Arrays.sort(files, new LastModifiedAscComparator());
return files;
}
public final static String systemPathToUnix(String filePath) {
if ("\\".equals(File.separator))
filePath = FilenameUtils.separatorsToUnix(filePath);
return filePath;
}
public final static String unixToSystemPath(String filePath) {
if ("\\".equals(File.separator))
filePath = FilenameUtils.separatorsToWindows(filePath);
return filePath;
}
public final static boolean isSubDirectory(File base, File child)
throws IOException {
base = base.getCanonicalFile();
child = child.getCanonicalFile();
File parent = child;
while (parent != null) {
if (base.equals(parent))
return true;
parent = parent.getParentFile();
}
return false;
}
public final static String computeMd5(File file) {
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
return DigestUtils.md5Hex(fis);
} catch (IOException e) {
Logging.warn(e);
return null;
} finally {
if (fis != null)
IOUtils.closeQuietly(fis);
}
}
public final static File createTempDirectory(String prefix, String suffix)
throws IOException {
final File temp;
temp = File.createTempFile(prefix, suffix);
if (!temp.delete())
throw new IOException("Could not delete temp file: "
+ temp.getAbsolutePath());
if (!temp.mkdir())
throw new IOException("Could not create temp directory: "
+ temp.getAbsolutePath());
return temp;
}
public final static void deleteDirectoryQuietly(File directory) {
try {
deleteDirectory(directory);
} catch (IOException e) {
Logging.warn(e);
}
}
}