mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-04-20 17:14:42 +01:00
use IFileSystem interface to get creation time
This commit is contained in:
@@ -249,7 +249,7 @@ namespace MediaBrowser.ServerApplication
|
||||
|
||||
RegisterSingleInstance<IBlurayExaminer>(() => new BdInfoExaminer());
|
||||
|
||||
FileSystemManager = FileSystemFactory.CreateFileSystemManager();
|
||||
FileSystemManager = FileSystemFactory.CreateFileSystemManager(LogManager);
|
||||
RegisterSingleInstance(FileSystemManager);
|
||||
|
||||
var mediaEncoderTask = RegisterMediaEncoder();
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
@@ -10,6 +11,13 @@ namespace MediaBrowser.ServerApplication.IO
|
||||
/// </summary>
|
||||
public class CommonFileSystem : IFileSystem
|
||||
{
|
||||
protected ILogger Logger;
|
||||
|
||||
public CommonFileSystem(ILogger logger)
|
||||
{
|
||||
Logger = logger;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determines whether the specified filename is shortcut.
|
||||
/// </summary>
|
||||
@@ -137,6 +145,25 @@ namespace MediaBrowser.ServerApplication.IO
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the creation time UTC.
|
||||
/// </summary>
|
||||
/// <param name="info">The info.</param>
|
||||
/// <returns>DateTime.</returns>
|
||||
public DateTime GetCreationTimeUtc(FileSystemInfo info)
|
||||
{
|
||||
// This could throw an error on some file systems that have dates out of range
|
||||
try
|
||||
{
|
||||
return info.CreationTimeUtc;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.ErrorException("Error determining CreationTimeUtc for {0}", ex, info.FullName);
|
||||
return DateTime.MinValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using MediaBrowser.Controller.IO;
|
||||
using MediaBrowser.Model.Logging;
|
||||
|
||||
namespace MediaBrowser.ServerApplication.IO
|
||||
{
|
||||
@@ -11,9 +12,9 @@ namespace MediaBrowser.ServerApplication.IO
|
||||
/// Creates the file system manager.
|
||||
/// </summary>
|
||||
/// <returns>IFileSystem.</returns>
|
||||
public static IFileSystem CreateFileSystemManager()
|
||||
public static IFileSystem CreateFileSystemManager(ILogManager logManager)
|
||||
{
|
||||
return new NativeFileSystem();
|
||||
return new NativeFileSystem(logManager.GetLogger("FileSystem"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security;
|
||||
@@ -8,6 +9,11 @@ namespace MediaBrowser.ServerApplication.IO
|
||||
{
|
||||
public class NativeFileSystem : CommonFileSystem
|
||||
{
|
||||
public NativeFileSystem(ILogger logger)
|
||||
: base(logger)
|
||||
{
|
||||
}
|
||||
|
||||
public override bool IsShortcut(string filename)
|
||||
{
|
||||
return base.IsShortcut(filename) ||
|
||||
|
||||
Reference in New Issue
Block a user