aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-06-19 22:23:07 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-06-19 22:23:07 -0400
commit6c282a76b1b10adc86df1e89c3e7597675508355 (patch)
tree1f60faf3db386edf73a550128c4eaa4a326d1916
parent4f0872c570fbabfb9b8d694dcf987f7d2bfe79cc (diff)
reduce file system info memory usage
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs8
-rw-r--r--MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs20
2 files changed, 15 insertions, 13 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs
index 4ee62b206..209ae0e45 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Audio/MusicAlbumResolver.cs
@@ -53,7 +53,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio
// If list contains at least 2 audio files or at least one and no video files consider it to contain music
var foundAudio = 0;
- foreach (var fullName in new DirectoryInfo(path).EnumerateFiles().Select(file => file.FullName))
+ foreach (var fullName in Directory.EnumerateFiles(path))
{
if (EntityResolutionHelper.IsAudioFile(fullName)) foundAudio++;
if (foundAudio >= 2)
@@ -95,14 +95,14 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Audio
// If list contains at least 2 audio files or at least one and no video files consider it to contain music
var foundAudio = 0;
- foreach (var file in list)
+ foreach (var fullName in list.Select(file => file.FullName))
{
- if (EntityResolutionHelper.IsAudioFile(file.FullName)) foundAudio++;
+ if (EntityResolutionHelper.IsAudioFile(fullName)) foundAudio++;
if (foundAudio >= 2)
{
return true;
}
- if (EntityResolutionHelper.IsVideoFile(file.FullName)) return false;
+ if (EntityResolutionHelper.IsVideoFile(fullName)) return false;
}
// or a single audio file and no video files
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
index 30d14c44b..2c856fb1a 100644
--- a/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
+++ b/MediaBrowser.Server.Implementations/Library/Resolvers/Movies/MovieResolver.cs
@@ -139,9 +139,11 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
// Loop through each child file/folder and see if we find a video
foreach (var child in fileSystemEntries)
{
+ var filename = child.Name;
+
if ((child.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
{
- if (IsDvdDirectory(child.Name))
+ if (IsDvdDirectory(filename))
{
return new T
{
@@ -149,7 +151,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
VideoType = VideoType.Dvd
};
}
- if (IsBluRayDirectory(child.Name))
+ if (IsBluRayDirectory(filename))
{
return new T
{
@@ -158,7 +160,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
};
}
- if (EntityResolutionHelper.IsMultiPartFile(child.Name))
+ if (EntityResolutionHelper.IsMultiPartFile(filename))
{
multiDiscFolders.Add(child);
}
@@ -167,7 +169,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
}
// Don't misidentify xbmc trailers as a movie
- if (child.Name.IndexOf(BaseItem.XbmcTrailerFileSuffix, StringComparison.OrdinalIgnoreCase) != -1)
+ if (filename.IndexOf(BaseItem.XbmcTrailerFileSuffix, StringComparison.OrdinalIgnoreCase) != -1)
{
continue;
}
@@ -215,9 +217,9 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
{
var videoType = VideoType.BluRay;
- folders = folders.Where(i =>
+ var folderPaths = folders.Select(i => i.FullName).Where(i =>
{
- var subfolders = Directory.GetDirectories(i.FullName).Select(Path.GetFileName).ToList();
+ var subfolders = Directory.GetDirectories(i).Select(Path.GetFileName).ToList();
if (subfolders.Any(IsDvdDirectory))
{
@@ -232,16 +234,16 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.Movies
return false;
- }).OrderBy(i => i.FullName).ToList();
+ }).OrderBy(i => i).ToList();
- if (folders.Count == 0)
+ if (folderPaths.Count == 0)
{
return null;
}
return new T
{
- Path = folders[0].FullName,
+ Path = folderPaths[0],
IsMultiPart = true,