Changed the name of FileFinder to FileUtil
This commit is contained in:
parent
a9bc9997ca
commit
ce83415d1c
19 changed files with 315 additions and 59 deletions
|
|
@ -1,193 +0,0 @@
|
|||
package zutil;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
/**
|
||||
* File path utilities
|
||||
*
|
||||
* @author Ziver
|
||||
*/
|
||||
public class FileFinder {
|
||||
|
||||
/**
|
||||
* Returns a String with a relative path from the given path
|
||||
*
|
||||
* @param file is the file to get a relative path from
|
||||
* @param path is the path
|
||||
* @return A String with a relative path
|
||||
*/
|
||||
public static String relativePath(File file, String path){
|
||||
String absolute = file.getAbsolutePath();
|
||||
String tmpPath = path.replaceAll(
|
||||
"[/\\\\]",
|
||||
Matcher.quoteReplacement(File.separator));
|
||||
|
||||
String relative = absolute.substring(
|
||||
absolute.indexOf(tmpPath)+path.length(),
|
||||
absolute.length());
|
||||
return relative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the File object for the given file.
|
||||
* Can not point to files in JAR files.
|
||||
*
|
||||
* @param path is the path to the file (no / if not absolute path)
|
||||
* @return A File object for the file
|
||||
*/
|
||||
public static File find(String path){
|
||||
try {
|
||||
File file = new File(path);
|
||||
if(file!=null && file.exists()){
|
||||
return file;
|
||||
}
|
||||
return new File(findURL(path).toURI());
|
||||
} catch (Exception e) {
|
||||
//e.printStackTrace(MultiPrintStream.out);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL to the given file
|
||||
*
|
||||
* @param path is the path to the file (no / if not absolute path)
|
||||
* @return A URL object for the file
|
||||
* @throws URISyntaxException
|
||||
*/
|
||||
public static URL findURL(String path){
|
||||
return FileFinder.class.getClassLoader().getResource(path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a InputStream from the path
|
||||
*
|
||||
* @param path is the path to the file (no / if not absolute path)
|
||||
* @return A InputStream object for the file
|
||||
*/
|
||||
public static InputStream getInputStream(String path){
|
||||
try {
|
||||
File file = new File(path);
|
||||
if(file!=null && file.exists()){
|
||||
return new BufferedInputStream( new FileInputStream( file ) );
|
||||
}
|
||||
return FileFinder.class.getClassLoader().getResourceAsStream(path);
|
||||
} catch (Exception e) {
|
||||
//e.printStackTrace(MultiPrintStream.out);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads and returns the content of a file as a String.
|
||||
* Or use FileUtils.readFileToString(file);
|
||||
*
|
||||
* @param file is the file to read
|
||||
* @return The file content
|
||||
* @throws IOException
|
||||
*/
|
||||
public static String getFileContent(File file) throws IOException{
|
||||
BufferedReader in = new BufferedReader(new FileReader(file));
|
||||
StringBuffer ret = new StringBuffer();
|
||||
int tmp;
|
||||
|
||||
while((tmp=in.read()) != -1){
|
||||
ret.append((char)tmp);
|
||||
}
|
||||
|
||||
in.close();
|
||||
return ret.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a List with all the files in a folder and sub folders
|
||||
*
|
||||
* @param dir is the directory to search in
|
||||
* @return The List with the files
|
||||
*/
|
||||
public static List<File> search(File dir){
|
||||
return search(dir, new LinkedList<File>(), true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a ArrayList with all the files in a folder and sub folders
|
||||
*
|
||||
* @param dir is the directory to search in
|
||||
* @param fileList is the List to add the files to
|
||||
* @param recursive is if the method should search the sub directories to.
|
||||
* @return A List with the files
|
||||
*/
|
||||
public static List<File> search(File dir, List<File> fileList, boolean recursive){
|
||||
return search(dir, new LinkedList<File>(), false, (recursive ? Integer.MAX_VALUE : 0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a ArrayList with all the files in a folder and sub folders
|
||||
*
|
||||
* @param dir is the directory to search in
|
||||
* @param fileList is the List to add the files to
|
||||
* @param folders is if the method should add the folders to the List
|
||||
* @param recurse is how many times it should recurse into folders
|
||||
* @return A List with the files and/or folders
|
||||
*/
|
||||
public static List<File> search(File dir, List<File> fileList, boolean folders, int recurse){
|
||||
if(recurse<0)
|
||||
return fileList;
|
||||
--recurse;
|
||||
if(folders){
|
||||
MultiPrintStream.out.println("Dir Found : "+dir);
|
||||
fileList.add( dir );
|
||||
}
|
||||
|
||||
File file;
|
||||
String[] temp = dir.list();
|
||||
if(temp != null){
|
||||
for(int i=0; i<temp.length ;i++){
|
||||
file = new File(dir.getPath()+File.separator+temp[i]);
|
||||
if(file.isDirectory()){
|
||||
search(new File(dir.getPath()+File.separator+temp[i]+File.separator), fileList, folders, recurse);
|
||||
}
|
||||
else if(file.isFile()){
|
||||
MultiPrintStream.out.println("File Found: "+file);
|
||||
fileList.add(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return fileList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the extension of the file
|
||||
*
|
||||
* @param file is the file
|
||||
* @return The extension
|
||||
*/
|
||||
public static String fileExtension(File file){
|
||||
return fileExtension(file.getName());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the extension of the file
|
||||
*
|
||||
* @param file is the file
|
||||
* @return The extension
|
||||
*/
|
||||
public static String fileExtension(String file){
|
||||
if(file.lastIndexOf(".")==-1)
|
||||
return "";
|
||||
return file.substring(file.lastIndexOf(".")+1,file.length());
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue