27 lines
		
	
	
		
			579 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			579 B
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package lnx2d;
 | |
| 
 | |
| class Path {
 | |
| 
 | |
| 	public static function toRelative(path:String, cwd:String):String {
 | |
| 		path = haxe.io.Path.normalize(path);
 | |
| 		cwd = haxe.io.Path.normalize(cwd);
 | |
| 
 | |
| 		var ar:Array<String> = [];
 | |
| 		var ar1 = path.split("/");
 | |
| 		var ar2 = cwd.split("/");
 | |
| 
 | |
| 		var index = 0;
 | |
| 		while (ar1[index] == ar2[index]) index++;
 | |
| 
 | |
| 		for (i in 0...ar2.length - index) ar.push("..");
 | |
| 
 | |
| 		for (i in index...ar1.length) ar.push(ar1[i]);
 | |
| 
 | |
| 		return ar.join("/");
 | |
| 	}
 | |
| 
 | |
| 	public static function toAbsolute(path:String, cwd:String):String {
 | |
| 		return haxe.io.Path.normalize(cwd + "/" + path);
 | |
| 	}
 | |
| }
 |