aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.ServerApplication/IO
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.ServerApplication/IO')
-rw-r--r--MediaBrowser.ServerApplication/IO/CommonFileSystem.cs27
-rw-r--r--MediaBrowser.ServerApplication/IO/FileSystemFactory.cs5
-rw-r--r--MediaBrowser.ServerApplication/IO/NativeFileSystem.cs8
3 files changed, 37 insertions, 3 deletions
diff --git a/MediaBrowser.ServerApplication/IO/CommonFileSystem.cs b/MediaBrowser.ServerApplication/IO/CommonFileSystem.cs
index b777930f3..dee9bd9d7 100644
--- a/MediaBrowser.ServerApplication/IO/CommonFileSystem.cs
+++ b/MediaBrowser.ServerApplication/IO/CommonFileSystem.cs
@@ -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;
+ }
+ }
}
diff --git a/MediaBrowser.ServerApplication/IO/FileSystemFactory.cs b/MediaBrowser.ServerApplication/IO/FileSystemFactory.cs
index 78a9338a4..ab7802e17 100644
--- a/MediaBrowser.ServerApplication/IO/FileSystemFactory.cs
+++ b/MediaBrowser.ServerApplication/IO/FileSystemFactory.cs
@@ -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"));
}
}
}
diff --git a/MediaBrowser.ServerApplication/IO/NativeFileSystem.cs b/MediaBrowser.ServerApplication/IO/NativeFileSystem.cs
index b5ceec619..0101b4249 100644
--- a/MediaBrowser.ServerApplication/IO/NativeFileSystem.cs
+++ b/MediaBrowser.ServerApplication/IO/NativeFileSystem.cs
@@ -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) ||