From b443d591a29bc18daea36a3871908a4c1c277990 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sun, 28 Apr 2013 01:29:27 -0400 Subject: fixes #200 - MB3 Locking Folders for a long time --- MediaBrowser.Controller/Entities/BaseItem.cs | 31 +++++++++++------------- MediaBrowser.Controller/Entities/Folder.cs | 2 +- MediaBrowser.Controller/Entities/Movies/Movie.cs | 6 ++--- MediaBrowser.Controller/Entities/TV/Season.cs | 7 +++--- MediaBrowser.Controller/Entities/TV/Series.cs | 5 ++-- 5 files changed, 25 insertions(+), 26 deletions(-) (limited to 'MediaBrowser.Controller/Entities') diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index c93923ab95..805cb7bdfa 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -244,13 +244,13 @@ namespace MediaBrowser.Controller.Entities // Record the name of each file // Need to sort these because accoring to msdn docs, our i/o methods are not guaranteed in any order - foreach (var file in ResolveArgs.FileSystemChildren.OrderBy(f => f.cFileName)) + foreach (var file in ResolveArgs.FileSystemChildren.OrderBy(f => f.Name)) { - sb.Append(file.cFileName); + sb.Append(file.Name); } - foreach (var file in ResolveArgs.MetadataFiles.OrderBy(f => f.cFileName)) + foreach (var file in ResolveArgs.MetadataFiles.OrderBy(f => f.Name)) { - sb.Append(file.cFileName); + sb.Append(file.Name); } return sb.ToString().GetMD5(); @@ -307,7 +307,7 @@ namespace MediaBrowser.Controller.Entities /// Resets the resolve args. /// /// The path info. - public void ResetResolveArgs(WIN32_FIND_DATA? pathInfo) + public void ResetResolveArgs(FileSystemInfo pathInfo) { ResolveArgs = CreateResolveArgs(pathInfo); } @@ -318,17 +318,14 @@ namespace MediaBrowser.Controller.Entities /// The path info. /// ItemResolveArgs. /// Unable to retrieve file system info for + path - protected internal virtual ItemResolveArgs CreateResolveArgs(WIN32_FIND_DATA? pathInfo = null) + protected internal virtual ItemResolveArgs CreateResolveArgs(FileSystemInfo pathInfo = null) { var path = Path; // non file-system entries will not have a path if (LocationType != LocationType.FileSystem || string.IsNullOrEmpty(path)) { - return new ItemResolveArgs(ConfigurationManager.ApplicationPaths) - { - FileInfo = new WIN32_FIND_DATA() - }; + return new ItemResolveArgs(ConfigurationManager.ApplicationPaths); } if (UseParentPathToCreateResolveArgs) @@ -336,16 +333,16 @@ namespace MediaBrowser.Controller.Entities path = System.IO.Path.GetDirectoryName(path); } - pathInfo = pathInfo ?? FileSystem.GetFileData(path); + pathInfo = pathInfo ?? FileSystem.GetFileSystemInfo(path); - if (!pathInfo.HasValue) + if (pathInfo == null || !pathInfo.Exists) { throw new IOException("Unable to retrieve file system info for " + path); } var args = new ItemResolveArgs(ConfigurationManager.ApplicationPaths) { - FileInfo = pathInfo.Value, + FileInfo = pathInfo, Path = path, Parent = Parent }; @@ -735,11 +732,11 @@ namespace MediaBrowser.Controller.Entities return new List(); } - IEnumerable files; + IEnumerable files; try { - files = FileSystem.GetFiles(folder.Value.Path); + files = new DirectoryInfo(folder.FullName).EnumerateFiles(); } catch (IOException ex) { @@ -793,11 +790,11 @@ namespace MediaBrowser.Controller.Entities return new List(); } - IEnumerable files; + IEnumerable files; try { - files = FileSystem.GetFiles(folder.Value.Path); + files = new DirectoryInfo(folder.FullName).EnumerateFiles(); } catch (IOException ex) { diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 3a8c8eec10..a22daab227 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -768,7 +768,7 @@ namespace MediaBrowser.Controller.Entities /// IEnumerable{BaseItem}. protected virtual IEnumerable GetNonCachedChildren() { - IEnumerable fileSystemChildren; + IEnumerable fileSystemChildren; try { diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index b70ac2b3b8..893d2d0e08 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -115,7 +115,7 @@ namespace MediaBrowser.Controller.Entities.Movies /// IEnumerable{Video}. private IEnumerable