mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-29 13:26:44 +01:00
fixes #200 - MB3 Locking Folders for a long time
This commit is contained in:
@@ -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.
|
||||
/// </summary>
|
||||
/// <param name="pathInfo">The path info.</param>
|
||||
public void ResetResolveArgs(WIN32_FIND_DATA? pathInfo)
|
||||
public void ResetResolveArgs(FileSystemInfo pathInfo)
|
||||
{
|
||||
ResolveArgs = CreateResolveArgs(pathInfo);
|
||||
}
|
||||
@@ -318,17 +318,14 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// <param name="pathInfo">The path info.</param>
|
||||
/// <returns>ItemResolveArgs.</returns>
|
||||
/// <exception cref="System.IO.IOException">Unable to retrieve file system info for + path</exception>
|
||||
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<Trailer>();
|
||||
}
|
||||
|
||||
IEnumerable<WIN32_FIND_DATA> files;
|
||||
IEnumerable<FileSystemInfo> 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<Audio.Audio>();
|
||||
}
|
||||
|
||||
IEnumerable<WIN32_FIND_DATA> files;
|
||||
IEnumerable<FileSystemInfo> files;
|
||||
|
||||
try
|
||||
{
|
||||
files = FileSystem.GetFiles(folder.Value.Path);
|
||||
files = new DirectoryInfo(folder.FullName).EnumerateFiles();
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
|
||||
@@ -768,7 +768,7 @@ namespace MediaBrowser.Controller.Entities
|
||||
/// <returns>IEnumerable{BaseItem}.</returns>
|
||||
protected virtual IEnumerable<BaseItem> GetNonCachedChildren()
|
||||
{
|
||||
IEnumerable<WIN32_FIND_DATA> fileSystemChildren;
|
||||
IEnumerable<FileSystemInfo> fileSystemChildren;
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
@@ -115,7 +115,7 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
/// <returns>IEnumerable{Video}.</returns>
|
||||
private IEnumerable<Video> LoadSpecialFeatures()
|
||||
{
|
||||
WIN32_FIND_DATA? folder;
|
||||
FileSystemInfo folder;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -133,11 +133,11 @@ namespace MediaBrowser.Controller.Entities.Movies
|
||||
return new List<Video>();
|
||||
}
|
||||
|
||||
IEnumerable<WIN32_FIND_DATA> files;
|
||||
IEnumerable<FileSystemInfo> files;
|
||||
|
||||
try
|
||||
{
|
||||
files = FileSystem.GetFiles(folder.Value.Path);
|
||||
files = new DirectoryInfo(folder.FullName).EnumerateFiles();
|
||||
}
|
||||
catch (IOException ex)
|
||||
{
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Controller.Library;
|
||||
@@ -134,9 +135,9 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
{
|
||||
var folder = args.GetFileSystemEntryByName("metadata");
|
||||
|
||||
if (folder.HasValue)
|
||||
if (folder != null)
|
||||
{
|
||||
args.AddMetadataFiles(FileSystem.GetFiles(folder.Value.Path));
|
||||
args.AddMetadataFiles(new DirectoryInfo(folder.FullName).EnumerateFiles());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,7 +146,7 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
/// </summary>
|
||||
/// <param name="pathInfo">The path info.</param>
|
||||
/// <returns>ItemResolveArgs.</returns>
|
||||
protected internal override ItemResolveArgs CreateResolveArgs(WIN32_FIND_DATA? pathInfo = null)
|
||||
protected internal override ItemResolveArgs CreateResolveArgs(FileSystemInfo pathInfo = null)
|
||||
{
|
||||
var args = base.CreateResolveArgs(pathInfo);
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using System.IO;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Controller.Library;
|
||||
using MediaBrowser.Controller.Localization;
|
||||
@@ -68,7 +69,7 @@ namespace MediaBrowser.Controller.Entities.TV
|
||||
/// </summary>
|
||||
/// <param name="pathInfo">The path info.</param>
|
||||
/// <returns>ItemResolveArgs.</returns>
|
||||
protected internal override ItemResolveArgs CreateResolveArgs(WIN32_FIND_DATA? pathInfo = null)
|
||||
protected internal override ItemResolveArgs CreateResolveArgs(FileSystemInfo pathInfo = null)
|
||||
{
|
||||
var args = base.CreateResolveArgs(pathInfo);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user