Inheritance: System.IO.BinaryReader
示例#1
0
 public void EnsureFullyLoaded()
 {
     if (_packedFile != null)
     {
         using (var reader = new AcdReader(_packedFile)) {
             while (reader.BaseStream.Position < reader.BaseStream.Length)
             {
                 var entry = reader.ReadEntry();
                 if (!_entries.ContainsKey(entry.Name))
                 {
                     _entries[entry.Name] = entry;
                 }
             }
         }
     }
     else if (_unpackedDirectory != null)
     {
         foreach (var file in Directory.GetFiles(_unpackedDirectory))
         {
             var name = Path.GetFileName(file);
             if (name != null && (!_entries.ContainsKey(name) || _entries[name] == null))
             {
                 _entries[name] = new AcdEntry {
                     Name = name,
                     Data = File.ReadAllBytes(file)
                 };
             }
         }
     }
 }
示例#2
0
文件: Acd.cs 项目: gro-ove/actools
        public static Acd FromFile(string filename) {
            if (!File.Exists(filename)) {
                throw new FileNotFoundException(filename);
            }

            var acd = new Acd(filename);
            using (var reader = new AcdReader(filename)) {
                acd.FromFile_Entries(reader);
            }

            return acd;
        }
示例#3
0
        private byte[] ReadPacked([NotNull] string entryName)
        {
            if (_packedBytes == null)
            {
                if (_packedFile == null)
                {
                    return(null);
                }
                _packedBytes = File.ReadAllBytes(_packedFile);
            }

            using (var stream = new MemoryStream(_packedBytes))
                using (var reader = new AcdReader(_packedFile, stream)) {
                    return(reader.ReadEntryData(entryName));
                }
        }
示例#4
0
文件: Acd.cs 项目: gro-ove/actools
 private void FromFile_Entries(AcdReader reader) {
     while (reader.BaseStream.Position < reader.BaseStream.Length) {
         var entry = reader.ReadEntry();
         Entries[entry.Name] = entry;
     }
 }