예제 #1
0
        public MicrosoftExFatRootDirFileDirectoryEntry(byte[] directoryEntry)
        {
            this.EntryType = directoryEntry[0];

            this.SecondaryCount = directoryEntry[1];
            this.SetChecksum    = ParseFile.ReadUshortLE(directoryEntry, 2);
            this.FileAttributes = ParseFile.ReadUshortLE(directoryEntry, 4);
            this.Reserved1      = ParseFile.ReadUshortLE(directoryEntry, 6);

            this.Create       = ParseFile.ReadUintLE(directoryEntry, 8);
            this.LastModified = ParseFile.ReadUintLE(directoryEntry, 0x0C);
            this.LastAccessed = ParseFile.ReadUintLE(directoryEntry, 0x10);

            this.Create10ms       = directoryEntry[0x14];
            this.LastModified10ms = directoryEntry[0x15];

            this.CreateTZOffset       = directoryEntry[0x16];
            this.LastModifiedTZOffset = directoryEntry[0x17];
            this.LastAccessTZOffset   = directoryEntry[0x18];

            this.Reserved2 = ParseFile.SimpleArrayCopy(directoryEntry, 0x19, 7);

            this.IsInUse     = ((this.EntryType & 0x80) == 0x80);
            this.IsDirectory = ((this.FileAttributes & 0x10) == 0x10);
        }
예제 #2
0
        private void ProcessRootDirectoryVolumeLabelEntry(byte[] volumeLabelEntry)
        {
            byte characterCount = volumeLabelEntry[1];    // chars, not bytes
            int  nameLength     = characterCount *= 2;    // multiple by 2 to get bytes since these are Unicode Chars

            byte[] labelBytes = ParseFile.SimpleArrayCopy(volumeLabelEntry, 2, nameLength);
            this.VolumeIdentifier = Encoding.Unicode.GetString(labelBytes);
        }
예제 #3
0
        public MicrosoftExFatRootDirFileNameExtensionEntry(byte[] fileNameExtensionEntry)
        {
            byte[] fileNameChunkBytes;

            this.EntryType             = fileNameExtensionEntry[0];
            this.GeneralSecondaryFlags = fileNameExtensionEntry[1];

            fileNameChunkBytes = ParseFile.SimpleArrayCopy(fileNameExtensionEntry, 2, 30);
            this.FileNameChunk = Encoding.Unicode.GetString(fileNameChunkBytes);
        }