SE now creates AppData folder if installed via installer - and SE AppData folder is missing (prevents warning message + crash)

git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@872 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
niksedk 2012-01-01 18:54:32 +00:00
parent c9dfe1643c
commit d8252a5fcf

View File

@ -104,9 +104,9 @@ namespace Nikse.SubtitleEdit.Logic
else else
{ {
string installerPath = GetInstallerPath(); string installerPath = GetInstallerPath();
string pf = System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles).TrimEnd('\\'); string pf = System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles).TrimEnd(Path.DirectorySeparatorChar);
string appDataRoamingPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Subtitle Edit"); string appDataRoamingPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Subtitle Edit");
if (installerPath != null && BaseDirectory.ToLower().StartsWith(installerPath.ToLower().TrimEnd('\\'))) if (installerPath != null && BaseDirectory.ToLower().StartsWith(installerPath.ToLower().TrimEnd(Path.DirectorySeparatorChar)))
{ {
if (Directory.Exists(appDataRoamingPath)) if (Directory.Exists(appDataRoamingPath))
{ {
@ -114,9 +114,18 @@ namespace Nikse.SubtitleEdit.Logic
} }
else else
{ {
Instance._dataDir = BaseDirectory; try
System.Windows.Forms.MessageBox.Show("Please re-install Subtitle Edit (installer version)"); {
System.Windows.Forms.Application.ExitThread(); System.IO.Directory.CreateDirectory(appDataRoamingPath);
System.IO.Directory.CreateDirectory(Path.Combine(appDataRoamingPath, "Dictionaries"));
Instance._dataDir = appDataRoamingPath + Path.DirectorySeparatorChar;
}
catch
{
Instance._dataDir = BaseDirectory;
System.Windows.Forms.MessageBox.Show("Please re-install Subtitle Edit (installer version)");
System.Windows.Forms.Application.ExitThread();
}
} }
} }
else if (BaseDirectory.ToLower().StartsWith(pf.ToLower()) && Environment.OSVersion.Version.Major >= 6 ) // 6 == Vista/Win2008Server/Win7 else if (BaseDirectory.ToLower().StartsWith(pf.ToLower()) && Environment.OSVersion.Version.Major >= 6 ) // 6 == Vista/Win2008Server/Win7