Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
IO Class Reference

Public Types

enum  Compression { LZ4 , None }
 

Static Public Member Functions

static void OnError (object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args)
 
static void PrintLog ()
 
static string GetJSON (object obj)
 
static T LoadJSON< T > (string json)
 
static void SaveFile (string path, object obj, bool compress=false, JsonSerializerSettings setting=null)
 
static void SaveText (string path, string text)
 
static T LoadFile< T > (string path, bool compress=false, JsonSerializerSettings setting=null)
 
static T LoadStreamJson< T > (MemoryStream stream, JsonSerializerSettings setting=null)
 
static void WriteLZ4 (string _path, byte[] _bytes)
 
static byte[] ReadLZ4 (string _path, int size, Compression compression)
 
static byte[] ReadLZ4 (byte[] bytes)
 
static bool IsCompressed (string path)
 
static void Compress (string path, string text)
 
static string Decompress (string path)
 
static void CopyDir (string sourceDirectory, string targetDirectory, Func< string, bool > funcExclude=null)
 
static void _CopyDir (DirectoryInfo source, DirectoryInfo target, Func< string, bool > funcExclude=null)
 
static void Copy (string fromPath, string toPath)
 
static void CopyAs (string fromPath, string toPath)
 
static void CopyAll (string fromPath, string toPath, bool overwrite=true)
 
static void DeleteFile (string path)
 
static void DeleteFiles (string path)
 
static void CreateDirectory (string path)
 
static void DeleteDirectory (string path)
 
static T Duplicate< T > (T t)
 
static void CreateTempDirectory (string path=null)
 
static void DeleteTempDirectory (string path=null)
 
static T LoadObject< T > (FileInfo file, object option=null)
 
static T LoadObject< T > (string _path, object option=null)
 
static void SavePNG (Texture2D tex, string _path)
 
static Texture2D LoadPNG (string _path, FilterMode filter=FilterMode.Point)
 
static byte[] ReadPngFile (string _path)
 
static T DeepCopy< T > (T target)
 
static string[] LoadTextArray (string _path)
 
static string LoadText (string _path)
 

Static Public Attributes

static string log
 
static JsonSerializerSettings jsReadGeneral
 
static JsonSerializerSettings jsWriteGeneral
 
static JsonSerializerSettings jsWriteConfig
 
static Formatting formatting = Formatting.Indented
 
static TextureImportSetting.Data importSetting = new TextureImportSetting.Data()
 
static JsonSerializerSettings dpSetting
 
static Formatting dpFormat = Formatting.Indented
 

Properties

static string TempPath [get]
 

Detailed Description

Definition at line 10 of file IO.cs.

Member Enumeration Documentation

◆ Compression

Enumerator
LZ4 
None 

Definition at line 12 of file IO.cs.

13 {
14 LZ4,
15 None
16 }

Member Function Documentation

◆ _CopyDir()

static void IO._CopyDir ( DirectoryInfo  source,
DirectoryInfo  target,
Func< string, bool >  funcExclude = null 
)
inlinestatic

Definition at line 247 of file IO.cs.

248 {
249 if (funcExclude == null || !funcExclude(source.Name))
250 {
251 Directory.CreateDirectory(target.FullName);
252 FileInfo[] files = source.GetFiles();
253 foreach (FileInfo fileInfo in files)
254 {
255 fileInfo.CopyTo(Path.Combine(target.FullName, fileInfo.Name), overwrite: true);
256 }
257 DirectoryInfo[] directories = source.GetDirectories();
258 foreach (DirectoryInfo directoryInfo in directories)
259 {
260 DirectoryInfo target2 = target.CreateSubdirectory(directoryInfo.Name);
261 _CopyDir(directoryInfo, target2, funcExclude);
262 }
263 }
264 }
static void _CopyDir(DirectoryInfo source, DirectoryInfo target, Func< string, bool > funcExclude=null)
Definition: IO.cs:247

References _CopyDir().

Referenced by _CopyDir(), and CopyDir().

◆ Compress()

static void IO.Compress ( string  path,
string  text 
)
inlinestatic

Definition at line 209 of file IO.cs.

210 {
211 File.WriteAllText(path, text);
212 }

Referenced by SaveFile().

◆ Copy()

static void IO.Copy ( string  fromPath,
string  toPath 
)
inlinestatic

Definition at line 266 of file IO.cs.

267 {
268 if (!File.Exists(fromPath))
269 {
270 Debug.Log("File does not exist:" + fromPath);
271 return;
272 }
273 FileInfo fileInfo = new FileInfo(fromPath);
274 DirectoryInfo directoryInfo = new DirectoryInfo(toPath);
275 if (!Directory.Exists(directoryInfo.FullName))
276 {
277 CreateDirectory(directoryInfo.FullName);
278 }
279 File.Copy(fileInfo.FullName, directoryInfo.FullName + "/" + fileInfo.Name, overwrite: true);
280 }
static void CreateDirectory(string path)
Definition: IO.cs:333

References CreateDirectory(), and Debug.

◆ CopyAll()

static void IO.CopyAll ( string  fromPath,
string  toPath,
bool  overwrite = true 
)
inlinestatic

Definition at line 294 of file IO.cs.

295 {
296 CreateDirectory(toPath);
297 string[] directories = Directory.GetDirectories(fromPath, "*", SearchOption.AllDirectories);
298 for (int i = 0; i < directories.Length; i++)
299 {
300 Directory.CreateDirectory(directories[i].Replace(fromPath, toPath));
301 }
302 directories = Directory.GetFiles(fromPath, "*.*", SearchOption.AllDirectories);
303 foreach (string text in directories)
304 {
305 string text2 = text.Replace(fromPath, toPath);
306 if (overwrite || !File.Exists(text2))
307 {
308 File.Copy(text, text2, overwrite: true);
309 }
310 }
311 }

References CreateDirectory().

◆ CopyAs()

static void IO.CopyAs ( string  fromPath,
string  toPath 
)
inlinestatic

Definition at line 282 of file IO.cs.

283 {
284 if (!File.Exists(fromPath))
285 {
286 Debug.LogError("File does not exist:" + fromPath);
287 }
288 else
289 {
290 File.Copy(fromPath, toPath, overwrite: true);
291 }
292 }

References Debug.

◆ CopyDir()

static void IO.CopyDir ( string  sourceDirectory,
string  targetDirectory,
Func< string, bool >  funcExclude = null 
)
inlinestatic

Definition at line 233 of file IO.cs.

234 {
235 DirectoryInfo directoryInfo = new DirectoryInfo(sourceDirectory);
236 DirectoryInfo target = new DirectoryInfo(targetDirectory);
237 if (!directoryInfo.Exists)
238 {
239 Debug.Log("Source dir doesn't exist:" + directoryInfo.FullName);
240 }
241 else
242 {
243 _CopyDir(directoryInfo, target, funcExclude);
244 }
245 }

References _CopyDir(), and Debug.

◆ CreateDirectory()

static void IO.CreateDirectory ( string  path)
inlinestatic

Definition at line 333 of file IO.cs.

334 {
335 if (!Directory.Exists(path))
336 {
337 Directory.CreateDirectory(path);
338 }
339 }

Referenced by Copy(), CopyAll(), CreateTempDirectory(), SaveFile(), and SaveText().

◆ CreateTempDirectory()

static void IO.CreateTempDirectory ( string  path = null)
inlinestatic

Definition at line 367 of file IO.cs.

368 {
369 CreateDirectory(path ?? TempPath);
370 }

References CreateDirectory().

◆ Decompress()

static string IO.Decompress ( string  path)
inlinestatic

Definition at line 214 of file IO.cs.

215 {
216 try
217 {
218 using FileStream innerStream = new FileStream(path, FileMode.Open);
219 using LZ4Stream stream = new LZ4Stream(innerStream, LZ4StreamMode.Decompress);
220 using StreamReader streamReader = new StreamReader(stream);
221 return streamReader.ReadToEnd();
222 }
223 catch (Exception message)
224 {
225 Debug.Log(message);
226 }
227 Debug.Log("Cannot decompress:" + IsCompressed(path) + "/" + path);
228 string text = File.ReadAllText(path);
229 Debug.Log(text);
230 return text.IsEmpty("");
231 }
static bool IsCompressed(string path)
Definition: IO.cs:194

References Debug, and IsCompressed().

Referenced by LoadFile< T >().

◆ DeepCopy< T >()

static T IO.DeepCopy< T > ( target)
inlinestatic

Definition at line 465 of file IO.cs.

466 {
467 return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(target, dpFormat, dpSetting), dpSetting);
468 }
static JsonSerializerSettings dpSetting
Definition: IO.cs:53

◆ DeleteDirectory()

static void IO.DeleteDirectory ( string  path)
inlinestatic

Definition at line 341 of file IO.cs.

342 {
343 path = path.Replace("\\\\?\\", "");
344 if (Directory.Exists(path))
345 {
346 DirectoryInfo directoryInfo = new DirectoryInfo(path);
347 try
348 {
349 new FileIOPermission(FileIOPermissionAccess.AllAccess, path).Demand();
350 }
351 catch (SecurityException ex)
352 {
353 Debug.Log(ex.ToString());
354 }
355 if (directoryInfo.Exists)
356 {
357 directoryInfo.Delete(recursive: true);
358 }
359 }
360 }

References Debug.

Referenced by DeleteTempDirectory().

◆ DeleteFile()

static void IO.DeleteFile ( string  path)
inlinestatic

Definition at line 313 of file IO.cs.

314 {
315 if (File.Exists(path))
316 {
317 File.Delete(path);
318 }
319 }

◆ DeleteFiles()

static void IO.DeleteFiles ( string  path)
inlinestatic

Definition at line 321 of file IO.cs.

322 {
323 if (Directory.Exists(path))
324 {
325 FileInfo[] files = new DirectoryInfo(path).GetFiles();
326 for (int i = 0; i < files.Length; i++)
327 {
328 files[i].Delete();
329 }
330 }
331 }

◆ DeleteTempDirectory()

static void IO.DeleteTempDirectory ( string  path = null)
inlinestatic

Definition at line 372 of file IO.cs.

373 {
374 DeleteDirectory(path ?? TempPath);
375 }
static void DeleteDirectory(string path)
Definition: IO.cs:341

References DeleteDirectory().

◆ Duplicate< T >()

static T IO.Duplicate< T > ( t)
inlinestatic

Definition at line 362 of file IO.cs.

363 {
364 return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(t, formatting, jsWriteGeneral), jsReadGeneral);
365 }
static JsonSerializerSettings jsReadGeneral
Definition: IO.cs:20

◆ GetJSON()

static string IO.GetJSON ( object  obj)
inlinestatic

Definition at line 79 of file IO.cs.

80 {
81 return JsonConvert.SerializeObject(obj, formatting, jsWriteGeneral);
82 }

◆ IsCompressed()

static bool IO.IsCompressed ( string  path)
inlinestatic

Definition at line 194 of file IO.cs.

195 {
196 byte[] array;
197 using (BinaryReader binaryReader = new BinaryReader(File.OpenRead(path)))
198 {
199 binaryReader.BaseStream.Seek(0L, SeekOrigin.Begin);
200 array = binaryReader.ReadBytes(4);
201 }
202 if (array.Length > 3 && array[0] == 123 && array[1] == 13 && array[2] == 10 && array[3] == 32)
203 {
204 return false;
205 }
206 return true;
207 }

Referenced by Decompress(), and LoadFile< T >().

◆ LoadFile< T >()

static T IO.LoadFile< T > ( string  path,
bool  compress = false,
JsonSerializerSettings  setting = null 
)
inlinestatic

Definition at line 111 of file IO.cs.

112 {
113 if (!File.Exists(path))
114 {
115 Debug.Log("File does not exist:" + path);
116 return default(T);
117 }
118 string value = (IsCompressed(path) ? Decompress(path) : File.ReadAllText(path));
119 Debug.Log("#io LoadFile;" + path);
120 return JsonConvert.DeserializeObject<T>(value, setting ?? jsReadGeneral);
121 }
static string Decompress(string path)
Definition: IO.cs:214

References Debug, Decompress(), and IsCompressed().

◆ LoadJSON< T >()

static T IO.LoadJSON< T > ( string  json)
inlinestatic

Definition at line 84 of file IO.cs.

85 {
86 return JsonConvert.DeserializeObject<T>(json, jsReadGeneral);
87 }

◆ LoadObject< T >() [1/2]

static T IO.LoadObject< T > ( FileInfo  file,
object  option = null 
)
inlinestatic
Type Constraints
T :UnityEngine.Object 

Definition at line 377 of file IO.cs.

377 : UnityEngine.Object
378 {
379 return LoadObject<T>(file.FullName, option);
380 }

◆ LoadObject< T >() [2/2]

static T IO.LoadObject< T > ( string  _path,
object  option = null 
)
inlinestatic
Type Constraints
T :UnityEngine.Object 

Definition at line 382 of file IO.cs.

382 : UnityEngine.Object
383 {
384 Type typeFromHandle = typeof(T);
385 if (typeFromHandle == typeof(Sprite))
386 {
387 SpriteLoadOption spriteLoadOption = option as SpriteLoadOption;
388 Texture2D texture2D = LoadPNG(_path);
389 if (!texture2D)
390 {
391 return null;
392 }
393 return Sprite.Create(texture2D, new Rect(0f, 0f, texture2D.width, texture2D.height), spriteLoadOption?.pivot ?? new Vector2(0.5f, 0f), 100f) as T;
394 }
395 if (typeFromHandle == typeof(Texture2D))
396 {
397 return LoadPNG(_path) as T;
398 }
399 if (typeof(ExcelData).IsAssignableFrom(typeFromHandle))
400 {
401 T val = Activator.CreateInstance<T>();
402 (val as ExcelData).path = _path;
403 return val;
404 }
405 if (typeFromHandle == typeof(TextData))
406 {
407 return new TextData
408 {
409 lines = File.ReadAllLines(_path)
410 } as T;
411 }
412 return null;
413 }
static Texture2D LoadPNG(string _path, FilterMode filter=FilterMode.Point)
Definition: IO.cs:421

References LoadPNG(), and SpriteLoadOption.pivot.

◆ LoadPNG()

static Texture2D IO.LoadPNG ( string  _path,
FilterMode  filter = FilterMode::Point 
)
inlinestatic

Definition at line 421 of file IO.cs.

422 {
423 if (!File.Exists(_path))
424 {
425 return null;
426 }
427 byte[] array = ReadPngFile(_path);
428 int num = 16;
429 int num2 = 0;
430 for (int i = 0; i < 4; i++)
431 {
432 if (num + 1 < array.Length)
433 {
434 num2 = num2 * 256 + array[num++];
435 }
436 }
437 int num3 = 0;
438 for (int j = 0; j < 4; j++)
439 {
440 if (num + 1 < array.Length)
441 {
442 num3 = num3 * 256 + array[num++];
443 }
444 }
445 TextureImportSetting.Data data = (TextureImportSetting.Instance ? TextureImportSetting.Instance.data : importSetting);
446 Texture2D texture2D = new Texture2D(num2, num3, data.format, data.mipmap, data.linear);
447 texture2D.LoadImage(array);
448 texture2D.wrapMode = data.wrapMode;
449 texture2D.filterMode = filter;
450 texture2D.anisoLevel = data.anisoLevel;
451 texture2D.mipMapBias = data.mipmapBias;
452 return texture2D;
453 }
static byte[] ReadPngFile(string _path)
Definition: IO.cs:455
static TextureImportSetting.Data importSetting
Definition: IO.cs:51

References TextureImportSetting.Data.anisoLevel, TextureImportSetting.Data.format, TextureImportSetting.Data.linear, TextureImportSetting.Data.mipmap, TextureImportSetting.Data.mipmapBias, ReadPngFile(), and TextureImportSetting.Data.wrapMode.

Referenced by LoadObject< T >().

◆ LoadStreamJson< T >()

static T IO.LoadStreamJson< T > ( MemoryStream  stream,
JsonSerializerSettings  setting = null 
)
inlinestatic

Definition at line 123 of file IO.cs.

124 {
125 stream.Position = 0L;
126 string value = "";
127 using (StreamReader streamReader = new StreamReader(stream))
128 {
129 value = streamReader.ReadToEnd();
130 }
131 return JsonConvert.DeserializeObject<T>(value, setting ?? jsReadGeneral);
132 }

◆ LoadText()

static string IO.LoadText ( string  _path)
inlinestatic

Definition at line 484 of file IO.cs.

485 {
486 string[] array = LoadTextArray(_path);
487 string text = "";
488 string[] array2 = array;
489 foreach (string text2 in array2)
490 {
491 text = text + text2 + Environment.NewLine;
492 }
493 return text;
494 }
static string[] LoadTextArray(string _path)
Definition: IO.cs:470

References LoadTextArray().

◆ LoadTextArray()

static string[] IO.LoadTextArray ( string  _path)
inlinestatic

Definition at line 470 of file IO.cs.

471 {
472 if (!File.Exists(_path))
473 {
474 _path += ".txt";
475 if (!File.Exists(_path))
476 {
477 Debug.Log(_path);
478 return new string[0];
479 }
480 }
481 return File.ReadAllLines(_path);
482 }

References Debug.

Referenced by LoadText().

◆ OnError()

static void IO.OnError ( object  sender,
Newtonsoft::Json::Serialization::ErrorEventArgs  args 
)
inlinestatic

Definition at line 66 of file IO.cs.

67 {
68 }

◆ PrintLog()

static void IO.PrintLog ( )
inlinestatic

Definition at line 70 of file IO.cs.

71 {
72 if (!log.IsEmpty())
73 {
74 Debug.LogWarning(log);
75 log = null;
76 }
77 }
static string log
Definition: IO.cs:18

References Debug.

◆ ReadLZ4() [1/2]

static byte[] IO.ReadLZ4 ( byte[]  bytes)
inlinestatic

Definition at line 181 of file IO.cs.

182 {
183 try
184 {
185 return LZ4Codec.Unwrap(bytes);
186 }
187 catch
188 {
189 Debug.Log("Exception: Failed to unwrap:");
190 return bytes;
191 }
192 }

References Debug.

◆ ReadLZ4() [2/2]

static byte[] IO.ReadLZ4 ( string  _path,
int  size,
Compression  compression 
)
inlinestatic

Definition at line 151 of file IO.cs.

152 {
153 for (int i = 0; i < 5; i++)
154 {
155 string text = _path + ((i == 0) ? "" : (".b" + i));
156 if (!File.Exists(text))
157 {
158 Debug.Log("Couldn't find:" + text);
159 continue;
160 }
161 byte[] array = File.ReadAllBytes(text);
162 if (array.Length == size)
163 {
164 return array;
165 }
166 if (compression == Compression.LZ4)
167 {
168 try
169 {
170 return ReadLZ4(array);
171 }
172 catch (Exception message)
173 {
174 Debug.Log(message);
175 }
176 }
177 }
178 return null;
179 }
Compression
Definition: IO.cs:13
static byte[] ReadLZ4(string _path, int size, Compression compression)
Definition: IO.cs:151

References Debug, and ReadLZ4().

Referenced by ReadLZ4().

◆ ReadPngFile()

static byte[] IO.ReadPngFile ( string  _path)
inlinestatic

Definition at line 455 of file IO.cs.

456 {
457 FileStream fileStream = new FileStream(_path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
458 BinaryReader binaryReader = new BinaryReader(fileStream);
459 byte[] result = binaryReader.ReadBytes((int)binaryReader.BaseStream.Length);
460 binaryReader.Close();
461 fileStream.Close();
462 return result;
463 }

Referenced by LoadPNG().

◆ SaveFile()

static void IO.SaveFile ( string  path,
object  obj,
bool  compress = false,
JsonSerializerSettings  setting = null 
)
inlinestatic

Definition at line 89 of file IO.cs.

90 {
91 string text = JsonConvert.SerializeObject(obj, formatting, setting ?? jsWriteGeneral);
92 CreateDirectory(Path.GetDirectoryName(path));
93 Debug.Log("#io SaveFile;" + path);
94 if (compress)
95 {
96 Compress(path, text);
97 }
98 else
99 {
100 File.WriteAllText(path, text);
101 }
102 }
static void Compress(string path, string text)
Definition: IO.cs:209

References Compress(), CreateDirectory(), and Debug.

◆ SavePNG()

static void IO.SavePNG ( Texture2D  tex,
string  _path 
)
inlinestatic

Definition at line 415 of file IO.cs.

416 {
417 byte[] bytes = tex.EncodeToPNG();
418 File.WriteAllBytes(_path, bytes);
419 }

◆ SaveText()

static void IO.SaveText ( string  path,
string  text 
)
inlinestatic

Definition at line 104 of file IO.cs.

105 {
106 CreateDirectory(Path.GetDirectoryName(path));
107 Debug.Log("#io SaveFile;" + path);
108 File.WriteAllText(path, text);
109 }

References CreateDirectory(), and Debug.

◆ WriteLZ4()

static void IO.WriteLZ4 ( string  _path,
byte[]  _bytes 
)
inlinestatic

Definition at line 134 of file IO.cs.

135 {
136 for (int i = 0; i < 5; i++)
137 {
138 string path = _path + ((i == 0) ? "" : (".b" + i));
139 try
140 {
141 File.WriteAllBytes(path, _bytes);
142 break;
143 }
144 catch (Exception message)
145 {
146 Debug.Log(message);
147 }
148 }
149 }

References Debug.

Member Data Documentation

◆ dpFormat

Formatting IO.dpFormat = Formatting.Indented
static

Definition at line 62 of file IO.cs.

◆ dpSetting

JsonSerializerSettings IO.dpSetting
static
Initial value:
= new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Include,
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
TypeNameHandling = TypeNameHandling.Auto,
Error = OnError
}
static void OnError(object sender, Newtonsoft.Json.Serialization.ErrorEventArgs args)
Definition: IO.cs:66

Definition at line 53 of file IO.cs.

◆ formatting

Formatting IO.formatting = Formatting.Indented
static

Definition at line 49 of file IO.cs.

◆ importSetting

TextureImportSetting.Data IO.importSetting = new TextureImportSetting.Data()
static

Definition at line 51 of file IO.cs.

◆ jsReadGeneral

JsonSerializerSettings IO.jsReadGeneral
static
Initial value:
= new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore,
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
TypeNameHandling = TypeNameHandling.Auto,
Error = OnError
}

Definition at line 20 of file IO.cs.

◆ jsWriteConfig

JsonSerializerSettings IO.jsWriteConfig
static
Initial value:
= new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Populate,
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
TypeNameHandling = TypeNameHandling.Auto,
Error = OnError
}
static readonly ShouldSerializeContractResolver Instance

Definition at line 39 of file IO.cs.

◆ jsWriteGeneral

JsonSerializerSettings IO.jsWriteGeneral
static
Initial value:
= new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
DefaultValueHandling = DefaultValueHandling.Ignore,
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
TypeNameHandling = TypeNameHandling.Auto,
Error = OnError
}

Definition at line 29 of file IO.cs.

◆ log

string IO.log
static

Definition at line 18 of file IO.cs.

Property Documentation

◆ TempPath

string IO.TempPath
staticget

Definition at line 64 of file IO.cs.


The documentation for this class was generated from the following file: