public GcfFileInfo(Gcf gcf, uint index) { Gcf = gcf; Index = index; if (Index == 0xFFFFFFFF) { ParentIndex = 0xFFFFFFFF; Path = null; ItemSize = 0; return; } List <string> path = new List <string>(); DirectoryEntry entry, parent; entry = parent = Gcf.GetDirectoryEntry(Index); do { path.Add(gcf.GetDirectoryName(parent.NameOffset)); if (parent.ParentIndex != 0xFFFFFFFF) { parent = gcf.GetDirectoryEntry(parent.ParentIndex); } } while (parent.ParentIndex != 0xFFFFFFFF); path.Reverse(); Path = string.Join(Gcf.Path.DirectorySeparatorChars[0].ToString(), path); ParentIndex = entry.ParentIndex; ItemSize = entry.ItemSize; }
public GcfFileInfo(Gcf gcf, uint index) { Gcf = gcf; Index = index; if (Index == 0xFFFFFFFF) { ParentIndex = 0xFFFFFFFF; Path = null; ItemSize = 0; return; } List<string> path = new List<string>(); DirectoryEntry entry, parent; entry = parent = Gcf.GetDirectoryEntry(Index); do { path.Add(gcf.GetDirectoryName(parent.NameOffset)); if (parent.ParentIndex != 0xFFFFFFFF) parent = gcf.GetDirectoryEntry(parent.ParentIndex); } while (parent.ParentIndex != 0xFFFFFFFF); path.Reverse(); Path = string.Join(Gcf.Path.DirectorySeparatorChars[0].ToString(), path); ParentIndex = entry.ParentIndex; ItemSize = entry.ItemSize; }