SIL.FieldWorks.FieldWorks.EnsureValidLinkedFilesFolder C# (CSharp) Méthode

EnsureValidLinkedFilesFolder() private static méthode

Ensure a valid folder for LangProject.LinkedFilesRootDir. When moving projects between systems, the stored value may become hopelessly invalid. See FWNX-1005 for an example of the havoc than can ensue.
This method gets called when we open the FDO cache.
private static EnsureValidLinkedFilesFolder ( SIL.FieldWorks.FDO.FdoCache cache ) : void
cache SIL.FieldWorks.FDO.FdoCache
Résultat void
		private static void EnsureValidLinkedFilesFolder(FdoCache cache)
		{
			// If the location of the LinkedFilesRootDir was changed when this project was restored just now;
			// overwrite the location that was restored from the fwdata file.
			if (!String.IsNullOrEmpty(s_LinkDirChangedTo) && !cache.LangProject.LinkedFilesRootDir.Equals(s_LinkDirChangedTo))
			{
				NonUndoableUnitOfWorkHelper.Do(cache.ActionHandlerAccessor,
					() => cache.LangProject.LinkedFilesRootDir = s_LinkDirChangedTo);
			}

			if (MiscUtils.RunningTests)
				return;

			var linkedFilesFolder = cache.LangProject.LinkedFilesRootDir;
			var defaultFolder = FdoFileHelper.GetDefaultLinkedFilesDir(cache.ProjectId.ProjectFolder);
			EnsureValidLinkedFilesFolderCore(linkedFilesFolder, defaultFolder);

			if (!Directory.Exists(linkedFilesFolder))
			{
				MessageBox.Show(String.Format(Properties.Resources.ksInvalidLinkedFilesFolder, linkedFilesFolder), Properties.Resources.ksErrorCaption);
				using (var folderBrowserDlg = new FolderBrowserDialogAdapter())
				{
					folderBrowserDlg.Description = Properties.Resources.ksLinkedFilesFolder;
					folderBrowserDlg.RootFolder = Environment.SpecialFolder.Desktop;
					folderBrowserDlg.SelectedPath = Directory.Exists(defaultFolder) ? defaultFolder : cache.ProjectId.ProjectFolder;
					if (folderBrowserDlg.ShowDialog() == DialogResult.OK)
						linkedFilesFolder = folderBrowserDlg.SelectedPath;
					else
					{
						FileUtils.EnsureDirectoryExists(defaultFolder);
						linkedFilesFolder = defaultFolder;
					}
				}
				NonUndoableUnitOfWorkHelper.DoUsingNewOrCurrentUOW(cache.ActionHandlerAccessor, () =>
					{ cache.LangProject.LinkedFilesRootDir = linkedFilesFolder; });
			}
		}
FieldWorks