예제 #1
0
파일: Resource.cs 프로젝트: j1m1l0k0/server
        public Stream GetStreamFile(string baseName)
        {
            StreamCacheEntry entry;

            if (!StreamEntries.TryGetValue(baseName, out entry))
            {
                return(null);
            }

            if (entry.FileName == null)
            {
                return(null);
            }

            return(File.Open(entry.FileName, FileMode.Open, FileAccess.Read, FileShare.Read));
        }
예제 #2
0
파일: TO8CHTX.cs 프로젝트: talestra/tov
        override public void Load(Stream Stream)
        {
            this.Stream = Stream;
            var HeaderStruct = Stream.ReadStruct <HeaderStruct>();

            Debug.Assert(HeaderStruct.Magic == "TO8CHTX");
            Debug.Assert(HeaderStruct.FileSize <= Stream.Length);
            StreamEntries = SliceStream.CreateWithLength(Stream, HeaderStruct.OffsetEntries);
            StreamTexts   = SliceStream.CreateWithLength(Stream, HeaderStruct.OffsetTexts);
            for (int n = 0; n < HeaderStruct.TextCount; n++)
            {
                var EntryStruct = StreamEntries.ReadStruct <EntryStruct>();
                var Entry       = new Entry();
                Entry.Load(this, EntryStruct);
                Entries.Add(Entry);
            }
        }
예제 #3
0
파일: Resource.cs 프로젝트: j1m1l0k0/server
 public IEnumerable <FileInfo> GetStreamFilesInfo()
 {
     return(StreamEntries.Where(e => e.Value.FileName != null).Select(e => new FileInfo(e.Value.FileName)));
 }