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");
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |