parent
e973aab384
commit
16956fa927
@ -0,0 +1,96 @@ |
||||
package mightypork.utils.files; |
||||
|
||||
|
||||
import java.io.File; |
||||
import java.util.HashMap; |
||||
import java.util.Map; |
||||
|
||||
import mightypork.utils.logging.Log; |
||||
|
||||
|
||||
/** |
||||
* Working directory helper. |
||||
* |
||||
* @author Ondřej Hruška (MightyPork) |
||||
*/ |
||||
public class WorkDir { |
||||
|
||||
private static File baseDir = new File("."); |
||||
private static Map<String, String> namedPaths = new HashMap<>(); |
||||
|
||||
|
||||
/** |
||||
* Initialize the workdir for the given root path |
||||
* |
||||
* @param workdir workdir root path |
||||
*/ |
||||
public static void setBaseDir(File workdir) |
||||
{ |
||||
WorkDir.baseDir = workdir; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* Add a path alias (dir or file), relative to the workdir. |
||||
* |
||||
* @param alias path alias |
||||
* @param path path relative to workdir |
||||
*/ |
||||
public static void addPath(String alias, String path) |
||||
{ |
||||
namedPaths.put(alias, path); |
||||
} |
||||
|
||||
|
||||
/** |
||||
* Get workdir folder, create if not exists. |
||||
* |
||||
* @param path dir path relative to workdir |
||||
* @return dir file |
||||
*/ |
||||
public static File getDir(String path) |
||||
{ |
||||
if (namedPaths.containsKey(path)) path = namedPaths.get(path); |
||||
|
||||
final File f = new File(baseDir, path); |
||||
if (!f.exists()) { |
||||
if (!f.mkdirs()) { |
||||
Log.w("Could not create a directory: " + f + " (path: " + path + ")"); |
||||
} |
||||
} |
||||
|
||||
return f; |
||||
} |
||||
|
||||
|
||||
/** |
||||
* Get workdir file, create parent if not exists. |
||||
* |
||||
* @param path dir path relative to workdir |
||||
* @return dir file |
||||
*/ |
||||
public static File getFile(String path) |
||||
{ |
||||
if (namedPaths.containsKey(path)) path = namedPaths.get(path); |
||||
|
||||
final File f = new File(baseDir, path); |
||||
|
||||
// create the parent dir
|
||||
if (!f.getParent().equals(baseDir)) { |
||||
f.getParentFile().mkdirs(); |
||||
} |
||||
|
||||
return f; |
||||
|
||||
} |
||||
|
||||
|
||||
/** |
||||
* @return the workdir File |
||||
*/ |
||||
public static File getBaseDir() |
||||
{ |
||||
return baseDir; |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue