Пример #1
0
        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)));
        }
Пример #2
0
        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);
        }
Пример #3
0
 public static string GetFullPath(string relativePath, RelativeFolder baseLocation)
 {
     return(PathHelpers.GetFullPath(relativePath, baseLocation, RelativeSubfolder.None));
 }