private bool TryGetDefaultSettingsLocationInfo(out string settingsLocation, out string softwareName)
{
settingsLocation = null;
softwareName = null;
try
{
var userConfigPath = GetUserConfigPath();
if (Path.GetFileName(userConfigPath) != kUserConfigFileName)
return false;
userConfigPath = Path.GetDirectoryName(Path.GetDirectoryName(userConfigPath)); // strip file name and last folder level
softwareName = Path.GetFileName(userConfigPath); // This is actually a folder, not a file.
if (softwareName == null)
return false;
int i = softwareName.IndexOf(".exe", StringComparison.Ordinal);
if (i > 0)
softwareName = softwareName.Substring(0, i);
else
{
i = softwareName.IndexOf("_StrongName_", StringComparison.Ordinal);
if (i > 0)
softwareName = softwareName.Substring(0, i);
}
settingsLocation = Path.GetDirectoryName(userConfigPath); // strip product folder
return true;
}
catch (Exception)
{
return false;
}
}