public void Save(List <Human> humen, string filePath) { string message; if (!File.Exists(filePath)) { message = "Файл будет создан"; } else { message = "Файл будет перезаписан"; } ThrowEventOperationFile?.Invoke(message, filePath); try { using (FileStream file = new(filePath, FileMode.OpenOrCreate, FileAccess.Write)) { XmlSerializer xml = new(typeof(List <Human>)); xml.Serialize(file, humen); file.Flush(); } message = "Данные записаны на файл"; } catch (InvalidOperationException ex) { message = ex.InnerException.Message; } finally { ThrowEventOperationFile?.Invoke(message, filePath); } }
public List <Human> Load(string filePath) { string message = null; try { FileInfo fileInfo = new(filePath); if (!fileInfo.Extension.Equals(".dat", StringComparison.OrdinalIgnoreCase)) { throw new FileLoadException($"Недопустимый формат файла: {fileInfo.Extension}, ожидался файл расширения .dat"); } ThrowEventOperationFile?.Invoke("Попытка получения данных", filePath); if (File.Exists(filePath)) { List <Human> collection; using (FileStream file = new(filePath, FileMode.Open, FileAccess.Read)) { BinaryFormatter binary = new(); collection = (List <Human>)binary.Deserialize(file); } message = "Данные получены успешно"; return(collection); } else { message = "Файл с расширением .dat не найден"; return(null); } } catch (SerializationException ex) { message = ex.Message; return(null); } catch (SecurityException ex) { message = ex.Message; return(null); } catch (FileLoadException ex) { message = ex.Message; return(null); } finally { ThrowEventOperationFile?.Invoke(message, filePath); } }
public void Save(List <Human> humen, string filePath) { string message; if (!File.Exists(filePath)) { message = "Файл будет создан"; } else { message = "Файл будет перезаписан"; } ThrowEventOperationFile?.Invoke(message, filePath); try { using (FileStream file = new(filePath, FileMode.OpenOrCreate, FileAccess.Write)) { string json = JsonSerializer.Serialize(humen, typeof(List <Human>), _jsonOptions); byte[] bytes = Encoding.UTF8.GetBytes(json); file.Write(bytes, 0, bytes.Length); } message = "Данные записаны на файл"; } catch (ArgumentException ex) { message = ex.Message; } catch (NotSupportedException ex) { message = ex.Message; } finally { ThrowEventOperationFile?.Invoke(message, filePath); } }
public void Save(List <Human> humen, string filePath) { string message; if (!File.Exists(filePath)) { message = "Файл будет создан"; } else { message = "Файл будет перезаписан"; } ThrowEventOperationFile?.Invoke(message, filePath); try { using (FileStream file = new(filePath, FileMode.OpenOrCreate)) { BinaryFormatter binary = new(); binary.Serialize(file, humen); file.Flush(); } message = "Данные записаны на файл"; } catch (SerializationException ex) { message = ex.Message; } catch (SecurityException ex) { message = ex.Message; } finally { ThrowEventOperationFile?.Invoke(message, filePath); } }
public List <Human> Load(string filePath) { string message = null; try { FileInfo fileInfo = new(filePath); if (!fileInfo.Extension.Equals(".json", StringComparison.OrdinalIgnoreCase)) { throw new FileLoadException($"Недопустимый формат файла: {fileInfo.Extension}, ожидался файл расширения .json"); } ThrowEventOperationFile?.Invoke("Попытка получения данных", filePath); if (File.Exists(filePath)) { List <Human> collection = null; using (FileStream file = new(filePath, FileMode.Open, FileAccess.Read)) { bool complete = false; while (complete != true) { var resultOperation = JsonSerializer.DeserializeAsync <List <Human> >(file); if (resultOperation.IsCompleted) { collection = resultOperation.Result; complete = true; } } file.Flush(); } message = "Данные получены успешно"; return(collection); } else { message = "Файл с расширением .json не найден"; return(null); } } catch (JsonException ex) { message = ex.Message; return(null); } catch (NotSupportedException ex) { message = ex.Message; return(null); } catch (FileLoadException ex) { message = ex.Message; return(null); } finally { ThrowEventOperationFile?.Invoke(message, filePath); } }