private void getDirectories(TreeNode tn) { int num = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long)(num * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); MainForm.PirsEntry entry = this.getEntry(); if (!(entry.Filename.Trim() == "")) { if (entry.Size == 0 && entry.Cluster == 0 && (int)entry.Parent == (int)Convert.ToUInt16(tn.Tag)) { TreeNode treeNode = new TreeNode(entry.Filename); treeNode.Tag = (object)num; treeNode.ToolTipText = string.Format("0x{0:X4}", treeNode.Tag); tn.Nodes.Add(treeNode); this.getDirectories(treeNode); } ++num; } else { break; } } }
private void extractFolder(ushort tag, string foldername, string pathname) { ushort tag1 = (ushort)0; while (true) { this.br.BaseStream.Seek(MainForm.PIRS_BASE + this.pirs_offset + (long)((int)tag1 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); pirsEntry = this.getEntry(); if (!(pirsEntry.Filename.Trim() == "")) { if (pirsEntry.Cluster == 0 && pirsEntry.Size == 0 && (int)pirsEntry.Parent == (int)tag) { this.extractFolder(tag1, pirsEntry.Filename, pathname + "\\" + foldername); } else if (pirsEntry.Cluster != 0 && (int)pirsEntry.Parent == (int)tag) { this.extractFile((long)pirsEntry.Cluster, (long)pirsEntry.Size, pathname + "\\" + foldername + "\\" + pirsEntry.Filename); } ++tag1; } else { break; } } }
private void getFiles(TreeNode tn) { int num1 = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long)(num1 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); MainForm.PirsEntry entry = this.getEntry(); if (!(entry.Filename.Trim() == "")) { if (entry.Cluster == 0 && entry.Size == 0 && (int)entry.Parent == (int)Convert.ToUInt16(tn.Tag)) { ListViewItem listViewItem = new ListViewItem(); listViewItem.Text = entry.Filename; listViewItem.SubItems.Add(entry.Size.ToString()); listViewItem.SubItems.Add(entry.Cluster.ToString()); listViewItem.SubItems.Add(entry.DateTime1.ToString()); listViewItem.SubItems.Add(""); listViewItem.ImageIndex = 0; listViewItem.Tag = (object)num1; this.listView.Items.Add(listViewItem); } ++num1; } else { break; } } int num2 = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long)(num2 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); pirsEntry = this.getEntry(); if (!(pirsEntry.Filename.Trim() == "")) { if (pirsEntry.Cluster != 0 && (int)pirsEntry.Parent == (int)Convert.ToUInt16(tn.Tag)) { ListViewItem listViewItem = new ListViewItem(); listViewItem.Text = pirsEntry.Filename; listViewItem.SubItems.Add(pirsEntry.Size.ToString()); listViewItem.SubItems.Add(pirsEntry.Cluster.ToString()); listViewItem.SubItems.Add(pirsEntry.DateTime1.ToString()); listViewItem.SubItems.Add(""); listViewItem.ImageIndex = 1; listViewItem.ToolTipText = string.Format("Offset : 0x{0:X8}", (object)this.getOffset((long)pirsEntry.Cluster)); this.listView.Items.Add(listViewItem); } ++num2; } else { break; } } }
public void GetSongDta(string path) { int num1 = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long)(num1 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); MainForm.PirsEntry entry = this.getEntry(); if (entry.Filename == "songs.dta") { var filename = Path.Combine(path, Guid.NewGuid().ToString()); extractFile(entry.Cluster, entry.Size, filename); return; } if ((entry.Filename.Trim() == "")) { break; } ++num1; } int num2 = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long)(num2 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); pirsEntry = this.getEntry(); if (pirsEntry.Filename == "songs.dta") { var filename = Path.Combine(path, Guid.NewGuid().ToString()); extractFile(pirsEntry.Cluster, pirsEntry.Size, filename); return; } if ((pirsEntry.Filename.Trim() == "")) { break; } ++num2; } }
private MainForm.PirsEntry getEntry() { MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); pirsEntry.Filename = this.wr.readString(this.br, 38U); if (pirsEntry.Filename.Trim() == "") { return(pirsEntry); } pirsEntry.Unknow = this.wr.readInt32(this.br); pirsEntry.BlockLen = this.wr.readInt32(this.br); pirsEntry.Cluster = this.br.ReadInt32() >> 8; pirsEntry.Parent = this.wr.readUInt16(this.br); pirsEntry.Size = this.wr.readInt32(this.br); pirsEntry.DateTime1 = this.dosDateTime(this.wr.readInt32(this.br)); pirsEntry.DateTime2 = this.dosDateTime(this.wr.readInt32(this.br)); return(pirsEntry); }
public void GetSongDta(string path) { int num1 = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long)(num1 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); MainForm.PirsEntry entry = this.getEntry(); if (entry.Filename == "songs.dta") { var filename = Path.Combine(path, Guid.NewGuid().ToString()); extractFile(entry.Cluster, entry.Size, filename); return; } if ((entry.Filename.Trim() == "")) { break; } ++num1; } int num2 = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long) (num2*64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); pirsEntry = this.getEntry(); if (pirsEntry.Filename == "songs.dta") { var filename = Path.Combine(path, Guid.NewGuid().ToString()); extractFile(pirsEntry.Cluster, pirsEntry.Size, filename); return; } if ((pirsEntry.Filename.Trim() == "")) { break; } ++num2; } }
private void getFiles(TreeNode tn) { int num1 = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long) (num1 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); MainForm.PirsEntry entry = this.getEntry(); if (!(entry.Filename.Trim() == "")) { if (entry.Cluster == 0 && entry.Size == 0 && (int) entry.Parent == (int) Convert.ToUInt16(tn.Tag)) { ListViewItem listViewItem = new ListViewItem(); listViewItem.Text = entry.Filename; listViewItem.SubItems.Add(entry.Size.ToString()); listViewItem.SubItems.Add(entry.Cluster.ToString()); listViewItem.SubItems.Add(entry.DateTime1.ToString()); listViewItem.SubItems.Add(""); listViewItem.ImageIndex = 0; listViewItem.Tag = (object) num1; this.listView.Items.Add(listViewItem); } ++num1; } else break; } int num2 = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long) (num2 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); pirsEntry = this.getEntry(); if (!(pirsEntry.Filename.Trim() == "")) { if (pirsEntry.Cluster != 0 && (int) pirsEntry.Parent == (int) Convert.ToUInt16(tn.Tag)) { ListViewItem listViewItem = new ListViewItem(); listViewItem.Text = pirsEntry.Filename; listViewItem.SubItems.Add(pirsEntry.Size.ToString()); listViewItem.SubItems.Add(pirsEntry.Cluster.ToString()); listViewItem.SubItems.Add(pirsEntry.DateTime1.ToString()); listViewItem.SubItems.Add(""); listViewItem.ImageIndex = 1; listViewItem.ToolTipText = string.Format("Offset : 0x{0:X8}", (object) this.getOffset((long) pirsEntry.Cluster)); this.listView.Items.Add(listViewItem); } ++num2; } else break; } }
private MainForm.PirsEntry getEntry() { MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); pirsEntry.Filename = this.wr.readString(this.br, 38U); if (pirsEntry.Filename.Trim() == "") return pirsEntry; pirsEntry.Unknow = this.wr.readInt32(this.br); pirsEntry.BlockLen = this.wr.readInt32(this.br); pirsEntry.Cluster = this.br.ReadInt32() >> 8; pirsEntry.Parent = this.wr.readUInt16(this.br); pirsEntry.Size = this.wr.readInt32(this.br); pirsEntry.DateTime1 = this.dosDateTime(this.wr.readInt32(this.br)); pirsEntry.DateTime2 = this.dosDateTime(this.wr.readInt32(this.br)); return pirsEntry; }
private void getDirectories(TreeNode tn) { int num = 0; while (true) { this.br.BaseStream.Seek(this.pirs_start + (long) (num * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); MainForm.PirsEntry entry = this.getEntry(); if (!(entry.Filename.Trim() == "")) { if (entry.Size == 0 && entry.Cluster == 0 && (int) entry.Parent == (int) Convert.ToUInt16(tn.Tag)) { TreeNode treeNode = new TreeNode(entry.Filename); treeNode.Tag = (object) num; treeNode.ToolTipText = string.Format("0x{0:X4}", treeNode.Tag); tn.Nodes.Add(treeNode); this.getDirectories(treeNode); } ++num; } else break; } }
private void extractFolder(ushort tag, string foldername, string pathname) { ushort tag1 = (ushort) 0; while (true) { this.br.BaseStream.Seek(MainForm.PIRS_BASE + this.pirs_offset + (long) ((int) tag1 * 64), SeekOrigin.Begin); MainForm.PirsEntry pirsEntry = new MainForm.PirsEntry(); pirsEntry = this.getEntry(); if (!(pirsEntry.Filename.Trim() == "")) { if (pirsEntry.Cluster == 0 && pirsEntry.Size == 0 && (int) pirsEntry.Parent == (int) tag) this.extractFolder(tag1, pirsEntry.Filename, pathname + "\\" + foldername); else if (pirsEntry.Cluster != 0 && (int) pirsEntry.Parent == (int) tag) this.extractFile((long) pirsEntry.Cluster, (long) pirsEntry.Size, pathname + "\\" + foldername + "\\" + pirsEntry.Filename); ++tag1; } else break; } }