| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 | using System.IO;using MediaBrowser.Common.Kernel;namespace MediaBrowser.Controller{    /// <summary>    /// Extends BaseApplicationPaths to add paths that are only applicable on the server    /// </summary>    public class ServerApplicationPaths : BaseApplicationPaths    {        private string _rootFolderPath;        /// <summary>        /// Gets the path to the root media directory        /// </summary>        public string RootFolderPath        {            get            {                if (_rootFolderPath == null)                {                    _rootFolderPath = Path.Combine(ProgramDataPath, "root");                    if (!Directory.Exists(_rootFolderPath))                    {                        Directory.CreateDirectory(_rootFolderPath);                    }                }                return _rootFolderPath;            }        }        private string _ibnPath;        /// <summary>        /// Gets the path to the Images By Name directory        /// </summary>        public string ImagesByNamePath        {            get            {                if (_ibnPath == null)                {                    _ibnPath = Path.Combine(ProgramDataPath, "ImagesByName");                    if (!Directory.Exists(_ibnPath))                    {                        Directory.CreateDirectory(_ibnPath);                    }                }                return _ibnPath;            }        }        private string _PeoplePath;        /// <summary>        /// Gets the path to the People directory        /// </summary>        public string PeoplePath        {            get            {                if (_PeoplePath == null)                {                    _PeoplePath = Path.Combine(ImagesByNamePath, "People");                    if (!Directory.Exists(_PeoplePath))                    {                        Directory.CreateDirectory(_PeoplePath);                    }                }                return _PeoplePath;            }        }        private string _GenrePath;        /// <summary>        /// Gets the path to the Genre directory        /// </summary>        public string GenrePath        {            get            {                if (_GenrePath == null)                {                    _GenrePath = Path.Combine(ImagesByNamePath, "Genre");                    if (!Directory.Exists(_GenrePath))                    {                        Directory.CreateDirectory(_GenrePath);                    }                }                return _GenrePath;            }        }        private string _StudioPath;        /// <summary>        /// Gets the path to the Studio directory        /// </summary>        public string StudioPath        {            get            {                if (_StudioPath == null)                {                    _StudioPath = Path.Combine(ImagesByNamePath, "Studio");                    if (!Directory.Exists(_StudioPath))                    {                        Directory.CreateDirectory(_StudioPath);                    }                }                return _StudioPath;            }        }        private string _yearPath;        /// <summary>        /// Gets the path to the Year directory        /// </summary>        public string YearPath        {            get            {                if (_yearPath == null)                {                    _yearPath = Path.Combine(ImagesByNamePath, "Year");                    if (!Directory.Exists(_yearPath))                    {                        Directory.CreateDirectory(_yearPath);                    }                }                return _yearPath;            }        }        private string _userConfigurationDirectoryPath;        /// <summary>        /// Gets the path to the user configuration directory        /// </summary>        public string UserConfigurationDirectoryPath        {            get            {                if (_userConfigurationDirectoryPath == null)                {                    _userConfigurationDirectoryPath = Path.Combine(ConfigurationDirectoryPath, "user");                    if (!Directory.Exists(_userConfigurationDirectoryPath))                    {                        Directory.CreateDirectory(_userConfigurationDirectoryPath);                    }                }                return _userConfigurationDirectoryPath;            }        }        private string _CacheDirectory = null;        /// <summary>        /// Gets the folder path to the cache directory        /// </summary>        public string CacheDirectory        {            get            {                if (_CacheDirectory == null)                {                    _CacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "cache");                    if (!Directory.Exists(_CacheDirectory))                    {                        Directory.CreateDirectory(_CacheDirectory);                    }                }                return _CacheDirectory;            }        }        private string _FFProbeAudioCacheDirectory = null;        /// <summary>        /// Gets the folder path to the ffprobe audio cache directory        /// </summary>        public string FFProbeAudioCacheDirectory        {            get            {                if (_FFProbeAudioCacheDirectory == null)                {                    _FFProbeAudioCacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.CacheDirectory, "ffprobe-audio");                    if (!Directory.Exists(_FFProbeAudioCacheDirectory))                    {                        Directory.CreateDirectory(_FFProbeAudioCacheDirectory);                    }                }                return _FFProbeAudioCacheDirectory;            }        }        private string _FFProbeVideoCacheDirectory = null;        /// <summary>        /// Gets the folder path to the ffprobe video cache directory        /// </summary>        public string FFProbeVideoCacheDirectory        {            get            {                if (_FFProbeVideoCacheDirectory == null)                {                    _FFProbeVideoCacheDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.CacheDirectory, "ffprobe-video");                    if (!Directory.Exists(_FFProbeVideoCacheDirectory))                    {                        Directory.CreateDirectory(_FFProbeVideoCacheDirectory);                    }                }                return _FFProbeVideoCacheDirectory;            }        }                private string _FFMpegDirectory = null;        /// <summary>        /// Gets the folder path to ffmpeg        /// </summary>        public string FFMpegDirectory        {            get            {                if (_FFMpegDirectory == null)                {                    _FFMpegDirectory = Path.Combine(Kernel.Instance.ApplicationPaths.ProgramDataPath, "FFMpeg");                    if (!Directory.Exists(_FFMpegDirectory))                    {                        Directory.CreateDirectory(_FFMpegDirectory);                    }                }                return _FFMpegDirectory;            }        }        private string _FFMpegPath = null;        /// <summary>        /// Gets the path to ffmpeg.exe        /// </summary>        public string FFMpegPath        {            get            {                if (_FFMpegPath == null)                {                    _FFMpegPath = Path.Combine(FFMpegDirectory, "ffmpeg.exe");                }                return _FFMpegPath;            }        }        private string _FFProbePath = null;        /// <summary>        /// Gets the path to ffprobe.exe        /// </summary>        public string FFProbePath        {            get            {                if (_FFProbePath == null)                {                    _FFProbePath = Path.Combine(FFMpegDirectory, "ffprobe.exe");                }                return _FFProbePath;            }        }    }}
 |