Exemplo n.º 1
0
        /// <summary>
        /// Create a file information object by parsing a raw file descriptor sector.
        /// </summary>
        /// <param name="raw">Array containing the data from the file descriptor sector.</param>
        /// <param name="filename">Filename.</param>
        /// <returns>File information object.</returns>
        public static OS9FileInfo Parse(byte[] raw, string filename)
        {
            if (raw == null)
            {
                throw new ArgumentNullException();
            }
            byte attributes   = raw[0];
            int  owner        = (raw[1] << 8) | raw[2];
            int  links        = raw[8];
            int  size         = (raw[9] << 24) | (raw[10] << 16) | (raw[11] << 8) | raw[12];
            var  modifiedTime = new Timestamp(raw[3] + 1900, raw[4], raw[5], raw[6], raw[7], 0);
            var  createdTime  = new Timestamp(raw[13] + 1900, raw[14], raw[15], 0, 0, 0);

            var segments = new List <OS9FileSegment>();

            for (int i = 0; i < 48; i++)
            {
                var segment = new OS9FileSegment(raw, 16 + i * OS9FileSegment.SegmentSize);
                if (segment.IsLastSegment)
                {
                    break;
                }
                segments.Add(segment);
            }

            return(new OS9FileInfo(filename, size, (OS9FileAttributes)attributes, createdTime, modifiedTime, owner, links, segments.ToArray()));
        }
Exemplo n.º 2
0
 public OS9FileInfo(string name, int size, OS9FileAttributes attributes, Timestamp createdTime, Timestamp modifiedTime, int owner, int links, OS9FileSegment[] segments)
 {
     Name = name;
     Size = size;
     Attributes = attributes;
     CreateTime = createdTime;
     ModifiedTime = modifiedTime;
     OwnerId = owner;
     LinkCount = links;
     Segments = segments;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Create a file information object by parsing a raw file descriptor sector.
        /// </summary>
        /// <param name="raw">Array containing the data from the file descriptor sector.</param>
        /// <param name="filename">Filename.</param>
        /// <returns>File information object.</returns>
        public static OS9FileInfo Parse(byte[] raw, string filename)
        {
            if (raw == null) throw new ArgumentNullException();
            byte attributes = raw[0];
            int owner = (raw[1] << 8) | raw[2];
            int links = raw[8];
            int size = (raw[9] << 24) | (raw[10] << 16) | (raw[11] << 8) | raw[12];
            var modifiedTime = new Timestamp(raw[3] + 1900, raw[4], raw[5], raw[6], raw[7], 0);
            var createdTime = new Timestamp(raw[13] + 1900, raw[14], raw[15], 0, 0, 0);

            var segments = new List<OS9FileSegment>();
            for (int i = 0; i < 48; i++ )
            {
                var segment = new OS9FileSegment(raw, 16 + i*OS9FileSegment.SegmentSize);
                if (segment.IsLastSegment) break;
                segments.Add(segment);
            }

            return new OS9FileInfo(filename, size, (OS9FileAttributes)attributes, createdTime, modifiedTime ,owner, links, segments.ToArray());
        }