Item Attributes

This commit is contained in:
2022-04-01 21:46:55 +02:00
parent 70afc3880e
commit 7ff3898bd9
22 changed files with 178 additions and 40 deletions

View File

@@ -0,0 +1,23 @@
using System.Runtime.InteropServices;
namespace FileTime.Providers.Local
{
partial class LocalContentProvider
{
private static string GetDirectoryAttributes(DirectoryInfo directoryInfo)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
return "";
}
else
{
return "d"
+ ((directoryInfo.Attributes & FileAttributes.Archive) == FileAttributes.Archive ? "a" : "-")
+ ((directoryInfo.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly ? "r" : "-")
+ ((directoryInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden ? "h" : "-")
+ ((directoryInfo.Attributes & FileAttributes.System) == FileAttributes.System ? "s" : "-");
}
}
}
}

View File

@@ -0,0 +1,23 @@
using System.Runtime.InteropServices;
namespace FileTime.Providers.Local
{
partial class LocalContentProvider
{
private static string GetFileAttributes(FileInfo fileInfo)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
return "";
}
else
{
return "-"
+ ((fileInfo.Attributes & FileAttributes.Archive) == FileAttributes.Archive ? "a" : "-")
+ ((fileInfo.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly ? "r" : "-")
+ ((fileInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden ? "h" : "-")
+ ((fileInfo.Attributes & FileAttributes.System) == FileAttributes.System ? "s" : "-");
}
}
}
}

View File

@@ -5,7 +5,7 @@ using FileTime.Core.Services;
namespace FileTime.Providers.Local
{
public class LocalContentProvider : ContentProviderBase, ILocalContentProvider
public partial class LocalContentProvider : ContentProviderBase, ILocalContentProvider
{
protected bool IsCaseInsensitive { get; init; }
public LocalContentProvider() : base("local")
@@ -73,8 +73,10 @@ namespace FileTime.Providers.Local
fullName.GetParent()!,
(directoryInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden,
directoryInfo.Exists,
directoryInfo.CreationTime,
SupportsDelete.True,
true,
GetDirectoryAttributes(directoryInfo),
this,
GetItemsByContainer(directoryInfo)
);
@@ -91,8 +93,10 @@ namespace FileTime.Providers.Local
fullName.GetParent()!,
(fileInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden,
fileInfo.Exists,
fileInfo.CreationTime,
SupportsDelete.True,
true,
GetFileAttributes(fileInfo),
this
);
}