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> /// <returns>Task.</returns>
protected async Task StartFfMpeg(StreamState state, string outputPath) 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; var video = state.Item as Video;
if (video != null && video.VideoType == VideoType.Iso && video.IsoType.HasValue && IsoManager.CanMount(video.Path)) 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> /// <summary>
/// Gets the path to the system folder /// Gets the path to the system folder
/// </summary> /// </summary>
public string ProgramSystemPath { get { return Path.Combine(ProgramDataPath, "System"); } } public string ProgramSystemPath { get { return Path.Combine(ProgramDataPath, "system"); } }
/// <summary> /// <summary>
/// The _data directory /// The _data directory
@ -160,7 +160,7 @@ namespace MediaBrowser.Common.Implementations
{ {
if (_tempUpdatePath == null) if (_tempUpdatePath == null)
{ {
_tempUpdatePath = Path.Combine(ProgramDataPath, "Updates"); _tempUpdatePath = Path.Combine(ProgramDataPath, "updates");
if (!Directory.Exists(_tempUpdatePath)) if (!Directory.Exists(_tempUpdatePath))
{ {
Directory.CreateDirectory(_tempUpdatePath); Directory.CreateDirectory(_tempUpdatePath);
@ -219,10 +219,6 @@ namespace MediaBrowser.Common.Implementations
} }
} }
/// <summary>
/// The _system configuration file path
/// </summary>
private string _systemConfigurationFilePath;
/// <summary> /// <summary>
/// Gets the path to the system configuration file /// Gets the path to the system configuration file
/// </summary> /// </summary>
@ -231,7 +227,7 @@ namespace MediaBrowser.Common.Implementations
{ {
get 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 get
{ {
if (Configuration.UseCustomLibrary) var path = Configuration.UseCustomLibrary ? GetRootFolderPath(Name) : ConfigurationManager.ApplicationPaths.DefaultUserViewsPath;
if (!Directory.Exists(path))
{ {
var rootFolderPath = GetRootFolderPath(Name); Directory.CreateDirectory(path);
if (!Directory.Exists(rootFolderPath))
{
Directory.CreateDirectory(rootFolderPath);
}
return rootFolderPath;
} }
return ConfigurationManager.ApplicationPaths.DefaultUserViewsPath; return path;
} }
} }

View File

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

View File

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

View File

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

View File

@ -9,7 +9,7 @@
<projectUrl>https://github.com/MediaBrowser/MediaBrowser</projectUrl> <projectUrl>https://github.com/MediaBrowser/MediaBrowser</projectUrl>
<iconUrl>http://www.mb3admin.com/images/mb3icons1-1.png</iconUrl> <iconUrl>http://www.mb3admin.com/images/mb3icons1-1.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance> <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> <copyright>Copyright © Media Browser 2013</copyright>
<dependencies> <dependencies>
<dependency id="MediaBrowser.Common" version="3.0.113" /> <dependency id="MediaBrowser.Common" version="3.0.113" />
@ -20,6 +20,5 @@
</metadata> </metadata>
<files> <files>
<file src="dlls\MediaBrowser.Common.Implementations.dll" target="lib\net45\MediaBrowser.Common.Implementations.dll" /> <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> </files>
</package> </package>