예제 #1
0
파일: iso.cs 프로젝트: bsv798/p3fes
 public void Add(FileDirectoryDescriptor rec)
 {
     files.Add(rec);
 }
예제 #2
0
파일: iso.cs 프로젝트: bsv798/p3fes
        public void Save(sio.FileStream fs, FileDirectoryDescriptor parent)
        {
            int i;

            misc.WriteStruct(fs, files[0].hdr);
            fs.WriteByte(0);

            misc.WriteStruct(fs, parent.hdr);
            fs.WriteByte(1);

            for (i = 1; i < files.Count; i++)
            {
                fs.CondAlign(ISO9660.logSize, files[i].RecSize);
                files[i].Save(fs);
            }
            fs.Align(ISO9660.logSize);
        }
예제 #3
0
파일: iso.cs 프로젝트: bsv798/p3fes
        public FileRecords(sio.FileStream fs, string dirName, string dirFullName)
        {
            FileDirectoryDescriptor fd;
            long recEnd;

            files = new List<FileDirectoryDescriptor>();

            recEnd = fs.Position;
            fd = new FileDirectoryDescriptor(fs); //curr dir
            fd.name = dirName;
            fd.fullName = dirFullName;
            files.Add(fd);
            recEnd += fd.hdr.datLenL;

            fs.Position += fs.ReadByte(); //skip parent dir
            while (fs.Position < recEnd)
            {
                fd = new FileDirectoryDescriptor(fs);
                if (fd.hdr.lenDirRec > FileDirectoryDescriptor.DefaultSize)
                {
                    fd.fullName = dirFullName + fd.name;
                    if (fd.isDirectory)
                        if (fd.fullName.Length > 0)
                            fd.fullName += config.dirSep;
                    files.Add(fd);
                }
                fs.CondAlign(ISO9660.logSize, FileDirectoryDescriptor.DefaultSize);
            }
        }