private RPFEntry FindDirectory(Queue <string> queue, string basePath) { var path = queue.Dequeue(); var entry = m_subEntries.Find(e => e.Name == basePath + path); if (entry != null) { if (!entry.IsDirectory) { throw new InvalidOperationException("This already is a file, so a directory can't be made."); } } else { entry = new RPFEntry(basePath + path, true); m_subEntries.Add(entry); } if (queue.Count > 1) { entry = entry.FindDirectory(queue, basePath + path + "/"); } return(entry); }
public RPFFile() { RootEntry = new RPFEntry("", true); }
private RPFEntry FindDirectory(Queue<string> queue, string basePath) { var path = queue.Dequeue(); var entry = m_subEntries.Find(e => e.Name == basePath + path); if (entry != null) { if (!entry.IsDirectory) { throw new InvalidOperationException("This already is a file, so a directory can't be made."); } } else { entry = new RPFEntry(basePath + path, true); m_subEntries.Add(entry); } if (queue.Count > 1) { entry = entry.FindDirectory(queue, basePath + path + "/"); } return entry; }