Package org.apache.solr.util
Class FileUtils
- java.lang.Object
-
- org.apache.solr.util.FileUtils
-
public class FileUtils extends Object
-
-
Constructor Summary
Constructors Constructor Description FileUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidcopyFile(File src, File destination)static PathcreateDirectories(Path path)static booleanfileExists(String filePathString)static booleanisPathAChildOfParent(Path parent, Path potentialChild)Checks whether a child path falls under a particular parentstatic FileresolvePath(File base, String path)Resolves a path relative a base directory.static voidsync(File fullFile)Copied from Lucene's FSDirectory.fsync(String)
-
-
-
Method Detail
-
resolvePath
public static File resolvePath(File base, String path)
Resolves a path relative a base directory.This method does what "new File(base,path)" Should do, if it wasn't completely lame: If path is absolute, then a File for that path is returned; if it's not absolute, then a File is returned using "path" as a child of "base")
-
copyFile
public static void copyFile(File src, File destination) throws IOException
- Throws:
IOException
-
sync
public static void sync(File fullFile) throws IOException
Copied from Lucene's FSDirectory.fsync(String)- Parameters:
fullFile- the File to be synced to disk- Throws:
IOException- if the file could not be synced
-
fileExists
public static boolean fileExists(String filePathString)
-
createDirectories
public static Path createDirectories(Path path) throws IOException
- Throws:
IOException
-
isPathAChildOfParent
public static boolean isPathAChildOfParent(Path parent, Path potentialChild)
Checks whether a child path falls under a particular parentUseful for validating user-provided relative paths, which generally aren't expected to "escape" a given parent/root directory. Parent and child paths are "normalized" by
Path.normalize(). This removes explicit backtracking (e.g. "../") though it will not resolve symlinks if any are present in the provided Paths, so some forms of parent "escape" remain undetected. Paths needn't exist as a file or directory for comparison purposes.Note, this method does not consult the file system
- Parameters:
parent- the path of a 'parent' node. Path must be syntactically valid but needn't exist.potentialChild- the path of a potential child. Typically obtained via: parent.resolve(relativeChildPath). Path must be syntactically valid but needn't exist.- Returns:
- true if 'potentialChild' nests under the provided 'parent', false otherwise.
-
-