diff options
| author | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-21 10:42:40 -0400 |
|---|---|---|
| committer | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-21 10:42:40 -0400 |
| commit | 76d365fcf902665f56df7a1c85263a1368a33a2e (patch) | |
| tree | 4f172ae692c49814179fe1a4cd84f8727fb1917c /MediaBrowser.Controller | |
| parent | 9029d939f3a23fc949538e53117fd85051e0ea1d (diff) | |
Tweaked disk access a little bit more
Diffstat (limited to 'MediaBrowser.Controller')
10 files changed, 38 insertions, 34 deletions
diff --git a/MediaBrowser.Controller/Events/ItemResolveEventArgs.cs b/MediaBrowser.Controller/Events/ItemResolveEventArgs.cs index 18df73b51d..72eebc5f66 100644 --- a/MediaBrowser.Controller/Events/ItemResolveEventArgs.cs +++ b/MediaBrowser.Controller/Events/ItemResolveEventArgs.cs @@ -84,35 +84,25 @@ namespace MediaBrowser.Controller.Events /// </summary>
public class PreBeginResolveEventArgs : EventArgs
{
- public string Path { get; set; }
public Folder Parent { get; set; }
public bool Cancel { get; set; }
- public FileAttributes FileAttributes { get { return FileData.dwFileAttributes; } }
- public WIN32_FIND_DATA FileData { get; set; }
+ public LazyFileInfo File { get; set; }
- public bool IsFolder
+ public string Path
{
get
{
- return FileAttributes.HasFlag(FileAttributes.Directory);
+ return File.Path;
}
}
- public bool IsHidden
+ public bool IsDirectory
{
get
{
- return FileAttributes.HasFlag(FileAttributes.Hidden);
- }
- }
-
- public bool IsSystemFile
- {
- get
- {
- return FileAttributes.HasFlag(FileAttributes.System);
+ return File.FileInfo.dwFileAttributes.HasFlag(FileAttributes.Directory);
}
}
diff --git a/MediaBrowser.Controller/IO/FileData.cs b/MediaBrowser.Controller/IO/FileData.cs index 92b4a69861..98332c7949 100644 --- a/MediaBrowser.Controller/IO/FileData.cs +++ b/MediaBrowser.Controller/IO/FileData.cs @@ -53,6 +53,22 @@ namespace MediaBrowser.Controller.IO [MarshalAs(UnmanagedType.ByValTStr, SizeConst = FileData.MAX_ALTERNATE)]
public string cAlternate;
+ public bool IsHidden
+ {
+ get
+ {
+ return dwFileAttributes.HasFlag(FileAttributes.Hidden);
+ }
+ }
+
+ public bool IsSystemFile
+ {
+ get
+ {
+ return dwFileAttributes.HasFlag(FileAttributes.System);
+ }
+ }
+
public bool IsDirectory
{
get
diff --git a/MediaBrowser.Controller/Kernel.cs b/MediaBrowser.Controller/Kernel.cs index 4404571615..3ee9505c61 100644 --- a/MediaBrowser.Controller/Kernel.cs +++ b/MediaBrowser.Controller/Kernel.cs @@ -110,7 +110,7 @@ namespace MediaBrowser.Controller /// </summary>
void ItemController_PreBeginResolvePath(object sender, PreBeginResolveEventArgs e)
{
- if (e.IsHidden || e.IsSystemFile)
+ if (e.File.FileInfo.IsHidden || e.File.FileInfo.IsSystemFile)
{
// Ignore hidden files and folders
e.Cancel = true;
@@ -129,13 +129,10 @@ namespace MediaBrowser.Controller /// </summary>
void ItemController_BeginResolvePath(object sender, ItemResolveEventArgs e)
{
- if (e.IsFolder)
+ if (e.ContainsFile(".ignore"))
{
- if (e.ContainsFile(".ignore"))
- {
- // Ignore any folders containing a file called .ignore
- e.Cancel = true;
- }
+ // Ignore any folders containing a file called .ignore
+ e.Cancel = true;
}
}
diff --git a/MediaBrowser.Controller/Library/ItemController.cs b/MediaBrowser.Controller/Library/ItemController.cs index e99fa94a0c..9fd77fb0d9 100644 --- a/MediaBrowser.Controller/Library/ItemController.cs +++ b/MediaBrowser.Controller/Library/ItemController.cs @@ -23,9 +23,8 @@ namespace MediaBrowser.Controller.Library {
PreBeginResolveEventArgs args = new PreBeginResolveEventArgs()
{
- Path = path,
Parent = parent,
- FileData = fileData,
+ File = new LazyFileInfo() { Path = path, FileInfo = fileData },
Cancel = false
};
@@ -101,9 +100,8 @@ namespace MediaBrowser.Controller.Library ItemResolveEventArgs args = new ItemResolveEventArgs()
{
- Path = path,
+ File = new LazyFileInfo() { Path = path, FileInfo = fileData },
FileSystemChildren = fileSystemChildren,
- FileData = fileData,
Parent = parent,
Cancel = false
};
@@ -296,8 +294,7 @@ namespace MediaBrowser.Controller.Library item.DateModified = Directory.GetLastAccessTime(path);
ItemResolveEventArgs args = new ItemResolveEventArgs();
- args.Path = path;
- args.FileData = FileData.GetFileData(path);
+ args.File = new LazyFileInfo() { Path = path };
args.FileSystemChildren = ConvertFileSystemEntries(Directory.GetFileSystemEntries(path, "*", SearchOption.TopDirectoryOnly));
await Kernel.Instance.ExecuteMetadataProviders(item, args).ConfigureAwait(false);
diff --git a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs index 8e5364893c..2a5e0394c4 100644 --- a/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs +++ b/MediaBrowser.Controller/Providers/ImageFromMediaLocationProvider.cs @@ -25,7 +25,7 @@ namespace MediaBrowser.Controller.Providers {
return Task.Run(() =>
{
- if (args.IsFolder)
+ if (args.IsDirectory)
{
var baseItem = item as BaseItem;
diff --git a/MediaBrowser.Controller/Resolvers/AudioResolver.cs b/MediaBrowser.Controller/Resolvers/AudioResolver.cs index 11f8729b4e..26b4da310a 100644 --- a/MediaBrowser.Controller/Resolvers/AudioResolver.cs +++ b/MediaBrowser.Controller/Resolvers/AudioResolver.cs @@ -17,7 +17,7 @@ namespace MediaBrowser.Controller.Resolvers {
// Return audio if the path is a file and has a matching extension
- if (!args.IsFolder)
+ if (!args.IsDirectory)
{
if (IsAudioFile(args.Path))
{
diff --git a/MediaBrowser.Controller/Resolvers/BaseItemResolver.cs b/MediaBrowser.Controller/Resolvers/BaseItemResolver.cs index e91f5a6e8d..8b27d4d2e4 100644 --- a/MediaBrowser.Controller/Resolvers/BaseItemResolver.cs +++ b/MediaBrowser.Controller/Resolvers/BaseItemResolver.cs @@ -81,7 +81,7 @@ namespace MediaBrowser.Controller.Resolvers return;
}
- WIN32_FIND_DATA fileData = args.FileData;
+ WIN32_FIND_DATA fileData;
// See if a different path came out of the resolver than what went in
if (!args.Path.Equals(item.Path, StringComparison.OrdinalIgnoreCase))
@@ -97,6 +97,10 @@ namespace MediaBrowser.Controller.Resolvers fileData = FileData.GetFileData(item.Path);
}
}
+ else
+ {
+ fileData = args.File.FileInfo;
+ }
item.DateCreated = fileData.CreationTime;
diff --git a/MediaBrowser.Controller/Resolvers/FolderResolver.cs b/MediaBrowser.Controller/Resolvers/FolderResolver.cs index 27944dab2c..62fe2f6fbe 100644 --- a/MediaBrowser.Controller/Resolvers/FolderResolver.cs +++ b/MediaBrowser.Controller/Resolvers/FolderResolver.cs @@ -14,7 +14,7 @@ namespace MediaBrowser.Controller.Resolvers protected override Folder Resolve(ItemResolveEventArgs args)
{
- if (args.IsFolder)
+ if (args.IsDirectory)
{
return new Folder();
}
diff --git a/MediaBrowser.Controller/Resolvers/VideoResolver.cs b/MediaBrowser.Controller/Resolvers/VideoResolver.cs index bd676cb871..8192fa99be 100644 --- a/MediaBrowser.Controller/Resolvers/VideoResolver.cs +++ b/MediaBrowser.Controller/Resolvers/VideoResolver.cs @@ -26,7 +26,7 @@ namespace MediaBrowser.Controller.Resolvers protected override T Resolve(ItemResolveEventArgs args)
{
// If the path is a file check for a matching extensions
- if (!args.IsFolder)
+ if (!args.IsDirectory)
{
if (IsVideoFile(args.Path))
{
diff --git a/MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs b/MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs index 15bf943c21..19bf66f298 100644 --- a/MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs +++ b/MediaBrowser.Controller/Resolvers/VirtualFolderResolver.cs @@ -15,7 +15,7 @@ namespace MediaBrowser.Controller.Resolvers protected override VirtualFolder Resolve(ItemResolveEventArgs args)
{
- if (args.IsFolder && args.Parent != null && args.Parent.IsRoot)
+ if (args.IsDirectory && args.Parent != null && args.Parent.IsRoot)
{
return new VirtualFolder();
}
|
