| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | using System;using System.Configuration;using System.IO;namespace MediaBrowser.ServerApplication{    public static class ApplicationPathHelper    {        /// <summary>        /// Gets the path to the application's ProgramDataFolder        /// </summary>        /// <returns>System.String.</returns>        public static string GetProgramDataPath(string applicationPath)        {            var useDebugPath = false;#if DEBUG            useDebugPath = true;#endif            var programDataPath = useDebugPath ?                 ConfigurationManager.AppSettings["DebugProgramDataPath"] :                 ConfigurationManager.AppSettings["ReleaseProgramDataPath"];            programDataPath = programDataPath.Replace("%ApplicationData%", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));            programDataPath = programDataPath                .Replace('/', Path.DirectorySeparatorChar)                .Replace('\\', Path.DirectorySeparatorChar);            // If it's a relative path, e.g. "..\"            if (!Path.IsPathRooted(programDataPath))            {                var path = Path.GetDirectoryName(applicationPath);                if (string.IsNullOrEmpty(path))                {                    throw new ApplicationException("Unable to determine running assembly location");                }                programDataPath = Path.Combine(path, programDataPath);                programDataPath = Path.GetFullPath(programDataPath);            }            Directory.CreateDirectory(programDataPath);            return programDataPath;        }    }}
 |