// Call EntryAdded and register Added and Removed handlers private void DirAdded(PackEntry dir) { EntryAdded(dir); (dir as VirtualDirectory).FileAdded += EntryAdded; (dir as VirtualDirectory).DirectoryAdded += DirAdded; (dir as VirtualDirectory).FileRemoved += EntryRemoved; }
// retrieves the packed file at the given path name public PackEntry this[string filepath] { get { string[] paths = filepath.Split(Path.DirectorySeparatorChar); VirtualDirectory dir = Root; PackEntry result = dir; foreach (string subDir in paths) { result = dir.GetEntry(subDir); dir = result as VirtualDirectory; } return(result); } }
/* * Retrieve the contained entry with the given name. * Will return null if entry does not exist. */ public PackEntry GetEntry(string name) { PackEntry result = null; foreach (PackEntry entry in Entries) { if (entry.Name.Equals(name)) { result = entry; break; } } return(result); }
// Unregister modified and rename handlers private void EntryRemoved(PackEntry entry) { entry.ModifiedEvent -= EntryModified; entry.RenameEvent -= EntryRenamed; }
// Register modified and rename handlers private void EntryAdded(PackEntry file) { file.ModifiedEvent += EntryModified; file.RenameEvent += EntryRenamed; IsModified = true; }
// Set modified private void EntryRenamed(PackEntry file, string name) { EntryModified(file); }
// Set self to modified private void EntryModified(PackEntry file) { IsModified = true; }