public static string GetFullPath(string relativePath, RelativeFolder baseLocation, RelativeSubfolder subfolder) { if (Path.IsPathRooted(relativePath) || baseLocation == RelativeFolder.Current) { return(Path.GetFullPath(relativePath)); } string str; if (baseLocation == RelativeFolder.Application) { Assembly assembly = Assembly.GetEntryAssembly(); if ((object)assembly == null) { assembly = Assembly.GetExecutingAssembly(); } str = Path.GetDirectoryName(assembly.Location); } else { str = Environment.GetFolderPath((Environment.SpecialFolder)(baseLocation & (RelativeFolder)255)); if ((baseLocation & (RelativeFolder)256) == (RelativeFolder)256) { str = PathHelpers.AddProductPath(str); } } if (subfolder != RelativeSubfolder.None) { str = Path.Combine(str, Enum.GetName(subfolder.GetType(), (object)subfolder)); } return(Path.GetFullPath(Path.Combine(str, relativePath))); }
public void OneLevelRelativeFolder_HasCorrectFullPath() { var relativeFolder = new RelativeFolder(@"folder"); var absoluteFolder = new AbsoluteFolder(@"c:\"); var folder = new Folder(absoluteFolder, relativeFolder); Assert.AreEqual(@"c:\folder", folder.Absolute.FullPath); }
public static string GetFullPath(string relativePath, RelativeFolder baseLocation) { return(PathHelpers.GetFullPath(relativePath, baseLocation, RelativeSubfolder.None)); }