85 {
86 ResourceNode node = null;
88 try
89 {
90 DataSource source = new DataSource(map);
91
92 bool supportsCompression = true;
93 if(!(t is null))
94 {
95 ResourceNode n = Activator.CreateInstance(t) as ResourceNode;
96 supportsCompression = n?.supportsCompression ?? true;
97 }
98
99 if ((node =
FromSource(parent, source, t, supportsCompression)) ==
null)
100 {
101 string ext = path.Substring(path.LastIndexOf('.') + 1).ToUpper(CultureInfo.InvariantCulture);
102
103 if (!(t is null) && (node = Activator.CreateInstance(t) as ResourceNode) != null
104 || ForcedExtensions.ContainsKey(ext) &&
105 (node = Activator.CreateInstance(ForcedExtensions[ext]) as ResourceNode) != null)
106 {
108 if (uncompressedMap != null)
109 {
110 node.Initialize(parent, source, new DataSource(uncompressedMap));
111 }
112 else
113 {
114 node.Initialize(parent, source);
115 }
116 }
117 else
118 {
119 node = new RawDataNode(Path.GetFileName(path));
120 node.Initialize(parent, source);
121 }
122 }
123 }
124 finally
125 {
126 if (node == null)
127 {
129 }
130 }
131
132 return node;
133 }
Definition: FileMap.cs:10
virtual void Dispose()
Definition: FileMap.cs:33
static FileMap FromFile(string path)
Definition: FileMap.cs:48
Definition: Compressor.cs:37
static FileMap TryExpand(ref DataSource source, bool doTest=true)
Definition: Compressor.cs:155
FileMapProtect
Definition: FileMap.cs:175