예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FileExFatDirectoryEntry"/> class.
        /// </summary>
        /// <param name="buffer">The buffer.</param>
        public FileExFatDirectoryEntry(Buffer buffer) : base(buffer)
        {
            // the raw
            SecondaryCount           = new BufferUInt8(buffer, 1);
            SetChecksum              = new BufferUInt16(buffer, 2);
            FileAttributes           = new EnumValueProvider <ExFatFileAttributes, UInt16>(new BufferUInt16(buffer, 4));
            CreationTimeStamp        = new BufferUInt32(buffer, 8);
            LastWriteTimeStamp       = new BufferUInt32(buffer, 12);
            LastAccessTimeStamp      = new BufferUInt32(buffer, 16);
            Creation10msIncrement    = new BufferUInt8(buffer, 20);
            LastWrite10msIncrement   = new BufferUInt8(buffer, 21);
            CreationTimeZoneOffset   = new BufferUInt8(buffer, 22);
            LastWriteTimeZoneOffset  = new BufferUInt8(buffer, 23);
            LastAccessTimeZoneOffset = new BufferUInt8(buffer, 24);

            // the cooked
            CreationTime   = new EntryDateTime(CreationTimeStamp, Creation10msIncrement);
            LastWriteTime  = new EntryDateTime(LastWriteTimeStamp, LastWrite10msIncrement);
            LastAccessTime = new EntryDateTime(LastAccessTimeStamp);

            CreationTimeOffset   = new EntryTimeZone(CreationTimeZoneOffset);
            LastWriteTimeOffset  = new EntryTimeZone(LastWriteTimeZoneOffset);
            LastAccessTimeOffset = new EntryTimeZone(LastAccessTimeZoneOffset);

            CreationDateTimeOffset   = new EntryDateTimeOffset(CreationTime, CreationTimeOffset);
            LastWriteDateTimeOffset  = new EntryDateTimeOffset(LastWriteTime, LastWriteTimeOffset);
            LastAccessDateTimeOffset = new EntryDateTimeOffset(LastAccessTime, LastAccessTimeOffset);
        }
예제 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="StreamExtensionExFatDirectoryEntry"/> class.
 /// </summary>
 /// <param name="buffer">The buffer.</param>
 public StreamExtensionExFatDirectoryEntry(Buffer buffer) : base(buffer)
 {
     GeneralSecondaryFlags = new EnumValueProvider <ExFatGeneralSecondaryFlags, Byte>(new BufferUInt8(buffer, 1));
     NameLength            = new BufferUInt8(buffer, 3);
     NameHash        = new BufferUInt16(buffer, 4);
     ValidDataLength = new BufferUInt64(buffer, 8);
     FirstCluster    = new BufferUInt32(buffer, 20);
     DataLength      = new BufferUInt64(buffer, 24);
 }
예제 #3
0
 public FatDirectoryEntry(Buffer buffer)
 {
     DirName         = new BufferByteString(buffer, 0, 11, Encoding.Default);
     DirAttr         = new BufferUInt8(buffer, 11);
     DirNtRes        = new BufferUInt8(buffer, 12);
     DirCrtTimeTenth = new BufferUInt8(buffer, 13);
     DirCrtTime      = new BufferUInt16(buffer, 14);
     DirCrtDate      = new BufferUInt16(buffer, 16);
     DirLastAccDate  = new BufferUInt16(buffer, 18);
     DirFstClusHI    = new BufferUInt16(buffer, 20);
     DirWrtTime      = new BufferUInt16(buffer, 22);
     DirWrtDate      = new BufferUInt16(buffer, 24);
     DirFstClusLO    = new BufferUInt16(buffer, 26);
     DirFileSize     = new BufferUInt32(buffer, 28);
 }