using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace LLib.Notifications; public static class WindowsSounds { public static string MediaDirectory => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "Media"); public static IReadOnlyList ListWavFileNames() { try { if (!Directory.Exists(MediaDirectory)) { return Array.Empty(); } return Directory.EnumerateFiles(MediaDirectory, "*.wav").Select(Path.GetFileName).OfType() .OrderBy((string x) => x, StringComparer.OrdinalIgnoreCase) .ToArray(); } catch (Exception) { return Array.Empty(); } } public static string? ResolvePath(string? fileName) { if (string.IsNullOrEmpty(fileName)) { return null; } string text = Path.Combine(MediaDirectory, fileName); if (!File.Exists(text)) { return null; } return text; } }