public File(IsoContext context, DirectoryRecord dirEntry) { _context = context; _dirEntry = dirEntry; }
public static int ReadFrom(byte[] src, int offset, Encoding enc, out DirectoryRecord record) { int length = src[offset + 0]; record = new DirectoryRecord(); record.ExtendedAttributeRecordLength = src[offset + 1]; record.LocationOfExtent = IsoUtilities.ToUInt32FromBoth(src, offset + 2); record.DataLength = IsoUtilities.ToUInt32FromBoth(src, offset + 10); record.RecordingDateAndTime = IsoUtilities.ToUTCDateTimeFromDirectoryTime(src, offset + 18); record.Flags = (FileFlags)src[offset + 25]; record.FileUnitSize = src[offset + 26]; record.InterleaveGapSize = src[offset + 27]; record.VolumeSequenceNumber = IsoUtilities.ToUInt16FromBoth(src, offset + 28); byte lengthOfFileIdentifier = src[offset + 32]; record.FileIdentifier = IsoUtilities.ReadChars(src, offset + 33, lengthOfFileIdentifier, enc); return length; }
public CommonVolumeDescriptor( VolumeDescriptorType type, byte version, uint volumeSpaceSize, uint pathTableSize, uint typeLPathTableLocation, uint typeMPathTableLocation, uint rootDirExtentLocation, uint rootDirDataLength, DateTime buildTime, Encoding enc) : base(type, version) { CharacterEncoding = enc; SystemIdentifier = string.Empty; VolumeIdentifier = string.Empty; VolumeSpaceSize = volumeSpaceSize; VolumeSetSize = 1; VolumeSequenceNumber = 1; LogicalBlockSize = IsoUtilities.SectorSize; PathTableSize = pathTableSize; TypeLPathTableLocation = typeLPathTableLocation; ////OptionalTypeLPathTableLocation = 0; TypeMPathTableLocation = typeMPathTableLocation; ////OptionalTypeMPathTableLocation = 0; RootDirectory = new DirectoryRecord(); RootDirectory.ExtendedAttributeRecordLength = 0; RootDirectory.LocationOfExtent = rootDirExtentLocation; RootDirectory.DataLength = rootDirDataLength; RootDirectory.RecordingDateAndTime = buildTime; RootDirectory.Flags = FileFlags.Directory; RootDirectory.FileUnitSize = 0; RootDirectory.InterleaveGapSize = 0; RootDirectory.VolumeSequenceNumber = 1; RootDirectory.FileIdentifier = "\0"; VolumeSetIdentifier = string.Empty; PublisherIdentifier = string.Empty; DataPreparerIdentifier = string.Empty; ApplicationIdentifier = string.Empty; CopyrightFileIdentifier = string.Empty; AbstractFileIdentifier = string.Empty; BibliographicFileIdentifier = string.Empty; CreationDateAndTime = buildTime; ModificationDateAndTime = buildTime; ExpirationDateAndTime = DateTime.MinValue; EffectiveDateAndTime = buildTime; FileStructureVersion = 1; // V1 }
internal static bool IsSpecialDirectory(DirectoryRecord r) { return r.FileIdentifier == "\0" || r.FileIdentifier == "\x01"; }