public Wz_File LoadFile(string fileName, Wz_Node node, bool useBaseWz = false, bool loadWzAsFolder = false) { Wz_File file = null; try { file = new Wz_File(fileName, this); if (!file.Loaded) { throw new Exception("The file is not a valid wz file."); } this.wz_files.Add(file); file.TextEncoding = this.TextEncoding; if (!this.encryption.encryption_detected) { this.encryption.DetectEncryption(file); } node.Value = file; file.Node = node; file.FileStream.Position = file.Header.DataStartPosition; file.GetDirTree(node, useBaseWz, loadWzAsFolder); file.DetectWzType(); file.DetectWzVersion(); return(file); } catch { if (file != null) { file.Close(); this.wz_files.Remove(file); } throw; } }
public void LoadImg(string fileName, Wz_Node node) { Wz_File file = null; try { file = new Wz_File(fileName, this); file.TextEncoding = this.TextEncoding; var imgNode = new Wz_Node(node.Text); //跳过checksum检测 var img = new Wz_Image(node.Text, (int)file.FileStream.Length, 0, 0, 0, file) { OwnerNode = imgNode, Offset = 0, IsChecksumChecked = true }; imgNode.Value = img; node.Nodes.Add(imgNode); this.wz_files.Add(file); } catch { file?.Close(); throw; } }