public void CreateAllFiles(string directory, IFileExtensionFactory extensionFactory) { IOUtils.TryDeleteAllFilesInDirectory(directory); var serializer = new FileStringSerializer(); foreach (var file in Files.Descriptors) { var extensionInfo = extensionFactory.GetExtension(file.Key.TargetDeviceId, file.Key.FileType); var fileName = $"V{file.Key.FileFormatVersion}{extensionInfo.Extension}"; var path = Path.Combine(directory, fileName); var serialized = serializer.Serialize(file.Value.Descriptors.Select(d => d.FileDefaultDataEntity)); try { using (var stream = new StreamWriter(IOUtils.TryCreateFileOrNull(path))) { stream.Write(serialized); } } catch (Exception ex) { Logger.LogError(null, $"Не удалось создать или сохранить файл по пути: {path}", ex); } } }
public async Task SaveCalibrationFileAsync(FileType fileType, IEnumerable <IDataEntity> dataEntities) { await ThreadingUtils.ContinueAtThreadPull(); var serialized = new FileStringSerializer().Serialize(dataEntities); if (serialized != null) { var extensionInfo = _extensionFactory.GetExtension(_deviceId, fileType); var path = IOUtils.RequestFileSavingPath(extensionInfo.FileExtensionFilter); if (path != null) { try { File.WriteAllText(path, serialized); } catch (Exception ex) { Logger.LogErrorEverywhere($"Не удалось сохранить файл на диск", ex); } } } }