using System.Reflection; using System.Text; namespace BangumiRenamer.Utils; public static class ResourceLoader { public static IEnumerable GetAllResNames() { var assembly = Assembly.GetExecutingAssembly(); return assembly.GetManifestResourceNames(); } public static async Task ReadText(string resPath) { var stream = GetResStream(resPath); if (stream.CanSeek) { stream.Position = 0; } using var reader = new StreamReader(stream, Encoding.UTF8); return await reader.ReadToEndAsync(); } public static Stream GetResStream(string resPath) { var assembly = Assembly.GetExecutingAssembly(); var resourceName = resPath; if (assembly.GetManifestResourceInfo(resPath) == null) { resourceName = $"{assembly.GetName().Name}.{resourceName.Replace('\\', '.').Replace('/', '.')}"; } var stream = assembly.GetManifestResourceStream(resourceName); if (stream == null) { throw new FileNotFoundException($"资源 {resourceName} 未找到"); } return stream; } }