public ISO9660Directory(ISO9660FileSystem fileSystem, ISO9660Directory parent, Disk.ISO9660.DirectoryRecord record) : base(fileSystem, parent, record.FileIdentifier.length > 0 ? (FOS_System.String)record.FileIdentifier.Split(';')[0] : "") { TheDirectoryRecord = record; _theFile = new ISO9660File(fileSystem, parent, record) { IsDirectoryFile = true }; }
public ISO9660Directory(ISO9660FileSystem fileSystem, ISO9660Directory parent, Disk.ISO9660.DirectoryRecord record) : base(fileSystem, parent, record.FileIdentifier.length > 0 ? (FOS_System.String)record.FileIdentifier.Split(';')[0] : "") { TheDirectoryRecord = record; _theFile = new ISO9660File(fileSystem, parent, record) { IsDirectoryFile = true }; }
public override List GetListings() { if (_cachedlistings == null) { Get_FileStream(); byte[] data = new byte[(uint)_theFile.Size]; _fileStream.Position = 0; int actuallyRead = _fileStream.Read(data, 0, (int)data.Length); _cachedlistings = new List(10); uint position = 0; Disk.ISO9660.DirectoryRecord newRecord; do { newRecord = new Disk.ISO9660.DirectoryRecord(data, position); #if ISO9660DIR_TRACE BasicConsole.WriteLine(newRecord.ConvertToString()); #endif if (newRecord.RecordLength > 0) { if ((newRecord.TheFileFlags & Disk.ISO9660.DirectoryRecord.FileFlags.Directory) != 0) { // Directory _cachedlistings.Add(new ISO9660Directory((ISO9660FileSystem)TheFileSystem, this, newRecord)); } else { // File _cachedlistings.Add(new ISO9660File((ISO9660FileSystem)TheFileSystem, this, newRecord)); } position += newRecord.RecordLength; } } while (position < data.Length && newRecord.RecordLength > 0); } return _cachedlistings; }
public override List GetListings() { if (_cachedlistings == null) { Get_FileStream(); byte[] data = new byte[(uint)_theFile.Size]; _fileStream.Position = 0; int actuallyRead = _fileStream.Read(data, 0, (int)data.Length); _cachedlistings = new List(10); uint position = 0; Disk.ISO9660.DirectoryRecord newRecord; do { newRecord = new Disk.ISO9660.DirectoryRecord(data, position); #if ISO9660DIR_TRACE BasicConsole.WriteLine(newRecord.ConvertToString()); #endif if (newRecord.RecordLength > 0) { if ((newRecord.TheFileFlags & Disk.ISO9660.DirectoryRecord.FileFlags.Directory) != 0) { // Directory _cachedlistings.Add(new ISO9660Directory((ISO9660FileSystem)TheFileSystem, this, newRecord)); } else { // File _cachedlistings.Add(new ISO9660File((ISO9660FileSystem)TheFileSystem, this, newRecord)); } position += newRecord.RecordLength; } }while (position < data.Length && newRecord.RecordLength > 0); } return(_cachedlistings); }
public ISO9660File(ISO9660FileSystem fileSystem, ISO9660Directory parent, Disk.ISO9660.DirectoryRecord record) : base(fileSystem, parent, record.FileIdentifier.length > 0 ? (FOS_System.String)record.FileIdentifier.Split(';')[0] : "", record.DataLength) { TheDirectoryRecord = record; }
public ISO9660File(ISO9660FileSystem fileSystem, ISO9660Directory parent, Disk.ISO9660.DirectoryRecord record) : base(fileSystem, parent, record.FileIdentifier.length > 0 ? (FOS_System.String)record.FileIdentifier.Split(';')[0] : "", record.DataLength) { TheDirectoryRecord = record; }