コード例 #1
0
        private void ReadFiles()
        {
            base.Trace("[SymbianImageROFS] ReadFiles() - reading directory tree...");
            using (SymbianStreamReaderLE reader = SymbianStreamReaderLE.New((Stream)base.Stream))
            {
                reader.Seek(iHeader.InternalHeader.DirTreeOffset, SeekOrigin.Begin);
                TRofsDir rootDirectory = new TRofsDir(string.Empty, (uint)reader.Position, reader, this);

                base.Trace("[SymbianImageROFS] ReadFiles() - converting directory tree to full full paths...");
                MakeFilesForDirectory(rootDirectory, string.Empty);
            }
        }
コード例 #2
0
        private void MakeFilesForDirectory(TRofsDir aDirectory, string aParentDirectoryName)
        {
            string name = aParentDirectoryName + @"\";

            // Create files
            StringBuilder fullName = new StringBuilder();

            foreach (TRofsEntry entry in aDirectory)
            {
                fullName.Length = 0;
                fullName.Append(name);
                fullName.Append(entry.Name);
                //
                SIContent file = SIContentFactoryROFS.New(this, fullName.ToString(), entry.FileSize, entry.FileAddress, entry.Uids);
                base.RegisterFile(file);
            }

            // Create files in any subdirs
            foreach (TRofsDir subdir in aDirectory.SubDirectories)
            {
                MakeFilesForDirectory(subdir, name + subdir.Name);
            }
        }