defer path creation when possible

This commit is contained in:
Luke Pulverenti 2013-06-04 12:48:23 -04:00
parent 02fedead11
commit 2e408e40c0
7 changed files with 38 additions and 233 deletions

View File

@ -562,6 +562,13 @@ namespace MediaBrowser.Api.Playback
/// <returns>Task.</returns>
protected async Task StartFfMpeg(StreamState state, string outputPath)
{
var parentPath = Path.GetDirectoryName(outputPath);
if (!Directory.Exists(parentPath))
{
Directory.CreateDirectory(parentPath);
}
var video = state.Item as Video;
if (video != null && video.VideoType == VideoType.Iso && video.IsoType.HasValue && IsoManager.CanMount(video.Path))

View File

@ -45,7 +45,7 @@ namespace MediaBrowser.Common.Implementations
/// <summary>
/// Gets the path to the system folder
/// </summary>
public string ProgramSystemPath { get { return Path.Combine(ProgramDataPath, "System"); } }
public string ProgramSystemPath { get { return Path.Combine(ProgramDataPath, "system"); } }
/// <summary>
/// The _data directory
@ -160,7 +160,7 @@ namespace MediaBrowser.Common.Implementations
{
if (_tempUpdatePath == null)
{
_tempUpdatePath = Path.Combine(ProgramDataPath, "Updates");
_tempUpdatePath = Path.Combine(ProgramDataPath, "updates");
if (!Directory.Exists(_tempUpdatePath))
{
Directory.CreateDirectory(_tempUpdatePath);
@ -219,10 +219,6 @@ namespace MediaBrowser.Common.Implementations
}
}
/// <summary>
/// The _system configuration file path
/// </summary>
private string _systemConfigurationFilePath;
/// <summary>
/// Gets the path to the system configuration file
/// </summary>
@ -231,7 +227,7 @@ namespace MediaBrowser.Common.Implementations
{
get
{
return _systemConfigurationFilePath ?? (_systemConfigurationFilePath = Path.Combine(ConfigurationDirectoryPath, "system.xml"));
return Path.Combine(ConfigurationDirectoryPath, "system.xml");
}
}

View File

@ -28,19 +28,14 @@ namespace MediaBrowser.Controller.Entities
{
get
{
if (Configuration.UseCustomLibrary)
{
var rootFolderPath = GetRootFolderPath(Name);
var path = Configuration.UseCustomLibrary ? GetRootFolderPath(Name) : ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;
if (!Directory.Exists(rootFolderPath))
if (!Directory.Exists(path))
{
Directory.CreateDirectory(rootFolderPath);
Directory.CreateDirectory(path);
}
return rootFolderPath;
}
return ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;
return path;
}
}

View File

@ -50,7 +50,7 @@ namespace MediaBrowser.Model.Configuration
public BaseApplicationConfiguration()
{
EnableAutoUpdate = true;
LogFileRetentionDays = 7;
LogFileRetentionDays = 3;
#if (DEBUG)
EnableDebugLevelLogging = true;

View File

@ -558,6 +558,12 @@ namespace MediaBrowser.Server.Implementations.Library
public AggregateFolder CreateRootFolder()
{
var rootFolderPath = ConfigurationManager.ApplicationPaths.RootFolderPath;
if (!Directory.Exists(rootFolderPath))
{
Directory.CreateDirectory(rootFolderPath);
}
var rootFolder = RetrieveItem(rootFolderPath.GetMBId(typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(rootFolderPath);
// Add in the plug-in folders

View File

@ -26,10 +26,6 @@ namespace MediaBrowser.Server.Implementations
{
}
#endif
/// <summary>
/// The _root folder path
/// </summary>
private string _rootFolderPath;
/// <summary>
/// Gets the path to the base root media directory
/// </summary>
@ -38,22 +34,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_rootFolderPath == null)
{
_rootFolderPath = Path.Combine(ProgramDataPath, "Root");
if (!Directory.Exists(_rootFolderPath))
{
Directory.CreateDirectory(_rootFolderPath);
}
}
return _rootFolderPath;
return Path.Combine(ProgramDataPath, "root");
}
}
/// <summary>
/// The _default user views path
/// </summary>
private string _defaultUserViewsPath;
/// <summary>
/// Gets the path to the default user view directory. Used if no specific user view is defined.
/// </summary>
@ -62,22 +46,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_defaultUserViewsPath == null)
{
_defaultUserViewsPath = Path.Combine(RootFolderPath, "Default");
if (!Directory.Exists(_defaultUserViewsPath))
{
Directory.CreateDirectory(_defaultUserViewsPath);
}
}
return _defaultUserViewsPath;
return Path.Combine(RootFolderPath, "default");
}
}
/// <summary>
/// The _localization path
/// </summary>
private string _localizationPath;
/// <summary>
/// Gets the path to localization data.
/// </summary>
@ -86,15 +58,7 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_localizationPath == null)
{
_localizationPath = Path.Combine(ProgramDataPath, "Localization");
if (!Directory.Exists(_localizationPath))
{
Directory.CreateDirectory(_localizationPath);
}
}
return _localizationPath;
return Path.Combine(ProgramDataPath, "localization");
}
}
@ -110,36 +74,14 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_ibnPath == null)
{
_ibnPath = Path.Combine(ProgramDataPath, "ImagesByName");
if (!Directory.Exists(_ibnPath))
{
Directory.CreateDirectory(_ibnPath);
}
}
return _ibnPath;
return _ibnPath ?? (_ibnPath = Path.Combine(ProgramDataPath, "ImagesByName"));
}
set
{
_ibnPath = value;
_peoplePath = null;
_studioPath = null;
_genrePath = null;
_yearPath = null;
_musicArtistsPath = null;
_generalPath = null;
_ratingsPath = null;
_mediaInfoImagesPath = null;
}
}
/// <summary>
/// The _people path
/// </summary>
private string _peoplePath;
/// <summary>
/// Gets the path to the People directory
/// </summary>
@ -148,23 +90,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_peoplePath == null)
{
_peoplePath = Path.Combine(ItemsByNamePath, "People");
if (!Directory.Exists(_peoplePath))
{
Directory.CreateDirectory(_peoplePath);
return Path.Combine(ItemsByNamePath, "People");
}
}
return _peoplePath;
}
}
/// <summary>
/// The _genre path
/// </summary>
private string _genrePath;
/// <summary>
/// Gets the path to the Genre directory
/// </summary>
@ -173,23 +102,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_genrePath == null)
{
_genrePath = Path.Combine(ItemsByNamePath, "Genre");
if (!Directory.Exists(_genrePath))
{
Directory.CreateDirectory(_genrePath);
return Path.Combine(ItemsByNamePath, "Genre");
}
}
return _genrePath;
}
}
/// <summary>
/// The _studio path
/// </summary>
private string _studioPath;
/// <summary>
/// Gets the path to the Studio directory
/// </summary>
@ -198,23 +114,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_studioPath == null)
{
_studioPath = Path.Combine(ItemsByNamePath, "Studio");
if (!Directory.Exists(_studioPath))
{
Directory.CreateDirectory(_studioPath);
return Path.Combine(ItemsByNamePath, "Studio");
}
}
return _studioPath;
}
}
/// <summary>
/// The _year path
/// </summary>
private string _yearPath;
/// <summary>
/// Gets the path to the Year directory
/// </summary>
@ -223,23 +126,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_yearPath == null)
{
_yearPath = Path.Combine(ItemsByNamePath, "Year");
if (!Directory.Exists(_yearPath))
{
Directory.CreateDirectory(_yearPath);
return Path.Combine(ItemsByNamePath, "Year");
}
}
return _yearPath;
}
}
/// <summary>
/// The _general path
/// </summary>
private string _generalPath;
/// <summary>
/// Gets the path to the General IBN directory
/// </summary>
@ -248,23 +138,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_generalPath == null)
{
_generalPath = Path.Combine(ItemsByNamePath, "General");
if (!Directory.Exists(_generalPath))
{
Directory.CreateDirectory(_generalPath);
return Path.Combine(ItemsByNamePath, "general");
}
}
return _generalPath;
}
}
/// <summary>
/// The _ratings path
/// </summary>
private string _ratingsPath;
/// <summary>
/// Gets the path to the Ratings IBN directory
/// </summary>
@ -273,23 +150,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_ratingsPath == null)
{
_ratingsPath = Path.Combine(ItemsByNamePath, "Ratings");
if (!Directory.Exists(_ratingsPath))
{
Directory.CreateDirectory(_ratingsPath);
return Path.Combine(ItemsByNamePath, "ratings");
}
}
return _ratingsPath;
}
}
/// <summary>
/// The _media info images path
/// </summary>
private string _mediaInfoImagesPath;
/// <summary>
/// Gets the media info images path.
/// </summary>
@ -298,23 +162,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_mediaInfoImagesPath == null)
{
_mediaInfoImagesPath = Path.Combine(ItemsByNamePath, "MediaInfo");
if (!Directory.Exists(_mediaInfoImagesPath))
{
Directory.CreateDirectory(_mediaInfoImagesPath);
return Path.Combine(ItemsByNamePath, "mediainfo");
}
}
return _mediaInfoImagesPath;
}
}
/// <summary>
/// The _user configuration directory path
/// </summary>
private string _userConfigurationDirectoryPath;
/// <summary>
/// Gets the path to the user configuration directory
/// </summary>
@ -323,22 +174,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_userConfigurationDirectoryPath == null)
{
_userConfigurationDirectoryPath = Path.Combine(ConfigurationDirectoryPath, "users");
if (!Directory.Exists(_userConfigurationDirectoryPath))
{
Directory.CreateDirectory(_userConfigurationDirectoryPath);
}
}
return _userConfigurationDirectoryPath;
return Path.Combine(ConfigurationDirectoryPath, "users");
}
}
/// <summary>
/// The _f F MPEG stream cache path
/// </summary>
private string _fFMpegStreamCachePath;
/// <summary>
/// Gets the FF MPEG stream cache path.
/// </summary>
@ -347,24 +186,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_fFMpegStreamCachePath == null)
{
_fFMpegStreamCachePath = Path.Combine(CachePath, "encoded-media");
if (!Directory.Exists(_fFMpegStreamCachePath))
{
Directory.CreateDirectory(_fFMpegStreamCachePath);
return Path.Combine(CachePath, "encoded-media");
}
}
return _fFMpegStreamCachePath;
}
}
/// <summary>
/// The _images data path
/// </summary>
private string _downloadedImagesDataPath;
/// <summary>
/// Gets the images data path.
/// </summary>
@ -373,24 +198,10 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_downloadedImagesDataPath == null)
{
_downloadedImagesDataPath = Path.Combine(DataPath, "remote-images");
if (!Directory.Exists(_downloadedImagesDataPath))
{
Directory.CreateDirectory(_downloadedImagesDataPath);
return Path.Combine(DataPath, "remote-images");
}
}
return _downloadedImagesDataPath;
}
}
/// <summary>
/// The _music artists path
/// </summary>
private string _musicArtistsPath;
/// <summary>
/// Gets the artists path.
/// </summary>
@ -399,16 +210,7 @@ namespace MediaBrowser.Server.Implementations
{
get
{
if (_musicArtistsPath == null)
{
_musicArtistsPath = Path.Combine(ItemsByNamePath, "Artists");
if (!Directory.Exists(_musicArtistsPath))
{
Directory.CreateDirectory(_musicArtistsPath);
}
}
return _musicArtistsPath;
return Path.Combine(ItemsByNamePath, "artists");
}
}
}

View File

@ -9,7 +9,7 @@
<projectUrl>https://github.com/MediaBrowser/MediaBrowser</projectUrl>
<iconUrl>http://www.mb3admin.com/images/mb3icons1-1.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Contains common components shared by Media Browser Theatre and Media Browser Server. Not intended for plugin developer consumption.</description>
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
<dependency id="MediaBrowser.Common" version="3.0.113" />
@ -20,6 +20,5 @@
</metadata>
<files>
<file src="dlls\MediaBrowser.Common.Implementations.dll" target="lib\net45\MediaBrowser.Common.Implementations.dll" />
<file src="dlls\Mediabrowser.PluginSecurity.dll" target="lib\net45\Mediabrowser.PluginSecurity.dll" />
</files>
</package>