private void DoSomethingToContentPartsRecursively(OPCPackage package, PartInfo part, PartProcessingDelegate whatToDo) { using (Stream data = part.GetContent()) { whatToDo(data, part); } foreach (PartInfo pi in part.GetRelatedObjects()) { DoSomethingToContentPartsRecursively(package, pi, whatToDo); } }
private void ValidateFileRecursively(string outputFile, PartProcessingDelegate whatToDo) { using (OPCPackage package = new OPCPackage(File.Open(outputFile, FileMode.Open))) { DoSomethingToContentPartsRecursively(package, package.RootPart, whatToDo); } }