forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha; | ||
|  | 
 | ||
|  | import haxe.io.Bytes; | ||
|  | import haxe.io.Path; | ||
|  | import haxe.Serializer; | ||
|  | import haxe.Unserializer; | ||
|  | import kha.Blob; | ||
|  | import kha.StorageFile; | ||
|  | import system.io.Directory; | ||
|  | import system.io.File; | ||
|  | 
 | ||
|  | using StringTools; | ||
|  | 
 | ||
|  | class WPFStorageFile extends StorageFile { | ||
|  | 	var file: Path; | ||
|  | 
 | ||
|  | 	public function new(filename: String) { | ||
|  | 		this.file = new Path(filename); | ||
|  | 		if (file.dir != null) | ||
|  | 			Directory.CreateDirectory(file.dir); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	override public function read(): Blob { | ||
|  | 		if (file == null) | ||
|  | 			return null; | ||
|  | 		if (!File.Exists(file.toString())) | ||
|  | 			return null; | ||
|  | 		return Blob.fromBytes(Bytes.ofData(File.ReadAllBytes(file.toString()))); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	override public function write(data: Blob): Void { | ||
|  | 		File.WriteAllBytes(file.toString(), data.toBytes().getData()); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | class Storage { | ||
|  | 	public static function namedFile(name: String): StorageFile { | ||
|  | 		name = name.replace("<", "-("); | ||
|  | 		name = name.replace(">", ")-"); | ||
|  | 		name = name.replace(":", "_"); | ||
|  | 		name = name.replace("|", ")("); | ||
|  | 		name = name.replace("?", "(Q)"); | ||
|  | 		name = name.replace("*", "(+)"); | ||
|  | 		name = name.replace("\"", "''"); | ||
|  | 		return new WPFStorageFile(name); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	public static function defaultFile(): StorageFile { | ||
|  | 		return namedFile("default.kha"); | ||
|  | 	} | ||
|  | } |