mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Move filesystem metadata to GetInformation method for information only plugins.
This commit is contained in:
@@ -83,10 +83,12 @@ public sealed partial class ext2FS
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void GetInformation(IMediaImage imagePlugin, Partition partition, out string information, Encoding encoding)
|
||||
public void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information,
|
||||
out FileSystem metadata)
|
||||
{
|
||||
Encoding = encoding ?? Encoding.GetEncoding("iso-8859-15");
|
||||
information = "";
|
||||
metadata = new FileSystem();
|
||||
|
||||
var sb = new StringBuilder();
|
||||
|
||||
@@ -113,13 +115,13 @@ public sealed partial class ext2FS
|
||||
Array.Copy(sbSector, sbOff, sblock, 0, sbSizeInBytes);
|
||||
SuperBlock supblk = Marshal.ByteArrayToStructureLittleEndian<SuperBlock>(sblock);
|
||||
|
||||
Metadata = new FileSystem();
|
||||
metadata = new FileSystem();
|
||||
|
||||
switch(supblk.magic)
|
||||
{
|
||||
case EXT2_MAGIC_OLD:
|
||||
sb.AppendLine(Localization.ext2_old_filesystem);
|
||||
Metadata.Type = FS_TYPE_EXT2;
|
||||
metadata.Type = FS_TYPE_EXT2;
|
||||
|
||||
break;
|
||||
case EXT2_MAGIC:
|
||||
@@ -146,19 +148,19 @@ public sealed partial class ext2FS
|
||||
if(newExt2)
|
||||
{
|
||||
sb.AppendLine(Localization.ext2_filesystem);
|
||||
Metadata.Type = FS_TYPE_EXT2;
|
||||
metadata.Type = FS_TYPE_EXT2;
|
||||
}
|
||||
|
||||
if(ext3)
|
||||
{
|
||||
sb.AppendLine(Localization.ext3_filesystem);
|
||||
Metadata.Type = FS_TYPE_EXT3;
|
||||
metadata.Type = FS_TYPE_EXT3;
|
||||
}
|
||||
|
||||
if(ext4)
|
||||
{
|
||||
sb.AppendLine(Localization.ext4_filesystem);
|
||||
Metadata.Type = FS_TYPE_EXT4;
|
||||
metadata.Type = FS_TYPE_EXT4;
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -178,14 +180,14 @@ public sealed partial class ext2FS
|
||||
_ => string.Format(Localization.Unknown_OS_0, supblk.creator_os)
|
||||
};
|
||||
|
||||
Metadata.SystemIdentifier = extOs;
|
||||
metadata.SystemIdentifier = extOs;
|
||||
|
||||
if(supblk.mkfs_t > 0)
|
||||
{
|
||||
sb.AppendFormat(Localization.Volume_was_created_on_0_for_1,
|
||||
DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t), extOs).AppendLine();
|
||||
|
||||
Metadata.CreationDate = DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t);
|
||||
metadata.CreationDate = DateHandlers.UnixUnsignedToDateTime(supblk.mkfs_t);
|
||||
}
|
||||
else
|
||||
sb.AppendFormat(Localization.Volume_was_created_for_0, extOs).AppendLine();
|
||||
@@ -244,8 +246,8 @@ public sealed partial class ext2FS
|
||||
sb.AppendFormat(Localization.Volume_has_0_blocks_of_1_bytes_for_a_total_of_2_bytes, blocks,
|
||||
1024 << (int)supblk.block_size, blocks * (ulong)(1024 << (int)supblk.block_size)).AppendLine();
|
||||
|
||||
Metadata.Clusters = blocks;
|
||||
Metadata.ClusterSize = (uint)(1024 << (int)supblk.block_size);
|
||||
metadata.Clusters = blocks;
|
||||
metadata.ClusterSize = (uint)(1024 << (int)supblk.block_size);
|
||||
|
||||
if(supblk.mount_t > 0 ||
|
||||
supblk.mount_c > 0)
|
||||
@@ -302,18 +304,18 @@ public sealed partial class ext2FS
|
||||
sb.AppendFormat(Localization.Last_written_on_0, DateHandlers.UnixUnsignedToDateTime(supblk.write_t)).
|
||||
AppendLine();
|
||||
|
||||
Metadata.ModificationDate = DateHandlers.UnixUnsignedToDateTime(supblk.write_t);
|
||||
metadata.ModificationDate = DateHandlers.UnixUnsignedToDateTime(supblk.write_t);
|
||||
}
|
||||
else
|
||||
sb.AppendLine("Volume has never been written");
|
||||
|
||||
Metadata.Dirty = true;
|
||||
metadata.Dirty = true;
|
||||
|
||||
switch(supblk.state)
|
||||
{
|
||||
case EXT2_VALID_FS:
|
||||
sb.AppendLine(Localization.Volume_is_clean);
|
||||
Metadata.Dirty = false;
|
||||
metadata.Dirty = false;
|
||||
|
||||
break;
|
||||
case EXT2_ERROR_FS:
|
||||
@@ -335,7 +337,7 @@ public sealed partial class ext2FS
|
||||
sb.AppendFormat(Localization.Volume_name_0, StringHandlers.CToString(supblk.volume_name, Encoding)).
|
||||
AppendLine();
|
||||
|
||||
Metadata.VolumeName = StringHandlers.CToString(supblk.volume_name, Encoding);
|
||||
metadata.VolumeName = StringHandlers.CToString(supblk.volume_name, Encoding);
|
||||
}
|
||||
|
||||
switch(supblk.err_behaviour)
|
||||
@@ -365,14 +367,14 @@ public sealed partial class ext2FS
|
||||
if(supblk.uuid != Guid.Empty)
|
||||
{
|
||||
sb.AppendFormat(Localization.Volume_UUID_0, supblk.uuid).AppendLine();
|
||||
Metadata.VolumeSerial = supblk.uuid.ToString();
|
||||
metadata.VolumeSerial = supblk.uuid.ToString();
|
||||
}
|
||||
|
||||
if(supblk.kbytes_written > 0)
|
||||
sb.AppendFormat(Localization._0_KiB_has_been_written_on_volume, supblk.kbytes_written).AppendLine();
|
||||
|
||||
sb.AppendFormat(Localization._0_reserved_and_1_free_blocks, reserved, free).AppendLine();
|
||||
Metadata.FreeClusters = free;
|
||||
metadata.FreeClusters = free;
|
||||
|
||||
sb.AppendFormat(Localization._0_inodes_with_1_free_inodes_2, supblk.inodes, supblk.free_inodes,
|
||||
supblk.free_inodes * 100 / supblk.inodes).AppendLine();
|
||||
|
||||
@@ -33,7 +33,6 @@
|
||||
using System;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Text;
|
||||
using Aaru.CommonTypes.AaruMetadata;
|
||||
using Aaru.CommonTypes.Interfaces;
|
||||
|
||||
namespace Aaru.Filesystems;
|
||||
@@ -46,8 +45,6 @@ namespace Aaru.Filesystems;
|
||||
// ReSharper disable once InconsistentNaming
|
||||
public sealed partial class ext2FS : IFilesystem
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public FileSystem Metadata { get; private set; }
|
||||
/// <inheritdoc />
|
||||
public Encoding Encoding { get; private set; }
|
||||
/// <inheritdoc />
|
||||
|
||||
Reference in New Issue
Block a user