public async Task SaveFile(string fileName) { var textureSet = SelectedItem switch { TextureSetFile s => s, TileTextureCollection c => c.Parent, TextureGrid g => g.Parent?.Parent, TextureTile t => t.Parent?.Parent?.Parent, _ => null }; if (textureSet == null) { return; } GeneratorPreferencesWriter.EnsureParentDirectoryExists(fileName); var doc = TextureSetFileWriter.GenerateXml(textureSet); await using var stream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None, bufferSize: 4096, useAsync: true); await doc.SaveAsync(stream, default, default);
public async Task SaveDefaults() { try { var s = new GeneratorPreferencesWriter(Preferences); await s.SaveAsync(); } catch { // ignored too } try { var r = RecentFiles.Select(e => e.FileName).ToArray(); var path = RecentFilesStorageLocation; GeneratorPreferencesWriter.EnsureParentDirectoryExists(path); await File.WriteAllLinesAsync(path, r); } catch { // ignored too } }