Last active
December 14, 2016 15:35
-
-
Save Fireforge/74a1a3dd592420fa550a to your computer and use it in GitHub Desktop.
A class of helpful static functions for accessing files in the Resources folder in various ways
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class AssemblyResources | |
{ | |
public static bool ResourceExists(string resourceName) | |
{ | |
return Assembly.GetExecutingAssembly().GetManifestResourceNames().Contains(GetResourcePath(resourceName)); | |
} | |
public static string GetResourcePath(string resourceName) => $"{Assembly.GetExecutingAssembly().GetName().Name}.Resources.{resourceName}"; | |
public static Stream GetStream(string resourceName) | |
{ | |
return Assembly.GetExecutingAssembly().GetManifestResourceStream(GetResourcePath(resourceName)); | |
} | |
public static string ReadFile(string filename) | |
{ | |
using (StreamReader sr = new StreamReader(GetStream(filename))) | |
return sr.ReadToEnd(); | |
} | |
} | |
public class Resources | |
{ | |
public static bool ResourceExists(string filename) | |
{ | |
try | |
{ | |
var stream = GetStream(filename); | |
return true; | |
} | |
catch | |
{ | |
return false; | |
} | |
} | |
public static bool ResourceExists(string filename, string assemblyname) | |
{ | |
try | |
{ | |
var stream = GetStream(filename, assemblyname); | |
return true; | |
} | |
catch | |
{ | |
return false; | |
} | |
} | |
public static string GetResourcePath(string filename) => "pack://application:,,,/Resources/" + filename; | |
public static string GetReferencedAssemblyResourcePath(string filename, string assemblyname) => "pack://application:,,,/" + assemblyname + ";component/Resources/" + filename; | |
public static Uri GetResourceUri(string filename) => new Uri(GetResourcePath(filename)); | |
public static Uri GetResourceUri(string filename, string assemblyname) => new Uri(GetReferencedAssemblyResourcePath(filename, assemblyname)); | |
public static StreamResourceInfo GetStream(string filename) | |
{ | |
var uri = GetResourceUri(filename); | |
return System.Windows.Application.GetResourceStream(uri); | |
} | |
public static StreamResourceInfo GetStream(string filename, string assemblyname) | |
{ | |
var uri = GetResourceUri(filename, assemblyname); | |
return System.Windows.Application.GetResourceStream(uri); | |
} | |
public static string ReadFile(string filename) | |
{ | |
using (StreamReader sr = new StreamReader(GetStream(filename).Stream)) | |
return sr.ReadToEnd(); | |
} | |
public static string ReadFile(string filename, string assemblyname) | |
{ | |
using (StreamReader sr = new StreamReader(GetStream(filename, assemblyname).Stream)) | |
return sr.ReadToEnd(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment