More robust folder opening

This commit is contained in:
Assistant 2020-02-27 07:43:03 -07:00
parent b7eb58525a
commit 97d98b809d
4 changed files with 26 additions and 4 deletions

View file

@ -366,6 +366,26 @@ namespace ModAssistant
}
}
public static void OpenFolder(string location)
{
if (!location.EndsWith(Path.DirectorySeparatorChar.ToString())) location += Path.DirectorySeparatorChar;
if (Directory.Exists(location))
{
try
{
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo()
{
FileName = location,
UseShellExecute = true,
Verb = "open"
});
return;
}
catch { }
}
MessageBox.Show($"{string.Format((string)Application.Current.FindResource("Utils:CannotOpenFolder"), location)}.");
}
public static async Task Download(string link, string output)
{
var resp = await HttpClient.GetAsync(link);

View file

@ -165,4 +165,5 @@
<sys:String x:Key="Utils:NoInstallFolder">Utils:NoInstallFolder</sys:String>
<sys:String x:Key="Utils:RunAsAdmin">Utils:RunAsAdmin</sys:String>
<sys:String x:Key="Utils:InstallDir:DialogTitle">Utils:InstallDir:DialogTitle</sys:String>
<sys:String x:Key="Utils:CannotOpenFolder">Utils:CannotOpenFolder {0}</sys:String>
</ResourceDictionary>

View file

@ -224,4 +224,5 @@
<sys:String x:Key="Utils:NoInstallFolder">Could not detect your Beat Saber install folder. Please select it manually.</sys:String>
<sys:String x:Key="Utils:RunAsAdmin">Mod Assistant needs to run this task as Admin. Please try again.</sys:String>
<sys:String x:Key="Utils:InstallDir:DialogTitle">Select your Beat Saber install folder</sys:String>
<sys:String x:Key="Utils:CannotOpenFolder">Can't open folder: {0}</sys:String>
</ResourceDictionary>

View file

@ -58,7 +58,7 @@ namespace ModAssistant.Pages
private void OpenDirButton_Click(object sender, RoutedEventArgs e)
{
System.Diagnostics.Process.Start(InstallDirectory);
Utils.OpenFolder(InstallDirectory);
}
private void Test_Click(object sender, RoutedEventArgs e)
@ -162,7 +162,7 @@ namespace ModAssistant.Pages
string title = (string)Application.Current.FindResource("Options:LogUploadFailed:Title");
string body = (string)Application.Current.FindResource("Options:LogUploadFailed:Body");
MessageBox.Show($"{body}\n ================= \n" + exception, title);
System.Diagnostics.Process.Start(Path.Combine(InstallDirectory, "Logs"));
Utils.OpenFolder(Path.Combine(InstallDirectory, "Logs"));
}
}
@ -196,7 +196,7 @@ namespace ModAssistant.Pages
string location = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
"AppData", "LocalLow", "Hyperbolic Magnetism");
System.Diagnostics.Process.Start(location);
Utils.OpenFolder(location);
}
private async void YeetBSIPAButton_Click(object sender, RoutedEventArgs e)
@ -272,7 +272,7 @@ namespace ModAssistant.Pages
{
if (Directory.Exists(Themes.ThemeDirectory))
{
System.Diagnostics.Process.Start(Themes.ThemeDirectory);
Utils.OpenFolder(Themes.ThemeDirectory);
}
else
{