public string PathForResourceOfTypeInDirectory(string resourceName, string resourceType, string subDirectory)
{
string resourceFinalName = resourceName;
if (!String.IsNullOrEmpty(resourceType)) {
resourceFinalName += "." + resourceType;
}
// Matching NSBundle behaviour, we check for non-resources first.
string filePath;
if (!String.IsNullOrEmpty(subDirectory)) {
filePath = Path.Combine(ResourcesPath, Path.Combine(subDirectory, resourceFinalName));
} else {
filePath = Path.Combine(ResourcesPath, resourceFinalName);
}
if (File.Exists(filePath)) {
return filePath;
}
if (!String.IsNullOrEmpty(subDirectory)) {
filePath = Path.Combine(LocalisedResourcesPath, Path.Combine(subDirectory, resourceFinalName));
} else {
filePath = Path.Combine(LocalisedResourcesPath, resourceFinalName);
}
if (File.Exists(filePath)) {
return filePath;
}
return null;
}