private static string GetLuceneDirectory(string directoryRelative)
{
if (Path.IsPathRooted(directoryRelative))
{
return directoryRelative;
}
string appDomainPath;
try
{
appDomainPath = HttpRuntime.AppDomainAppPath;
}
catch
{
appDomainPath = null;
}
if (string.IsNullOrWhiteSpace(appDomainPath))
{
// Fix for tests / console applications
appDomainPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
}
if (directoryRelative.StartsWith("~", StringComparison.Ordinal))
{
directoryRelative = directoryRelative.TrimStart('~').TrimStart('/').TrimStart('\\');
}
return Path.Combine(appDomainPath, directoryRelative);
}