/// <summary> /// Enumerates the contents. /// </summary> /// <param name="content">The content.</param> /// <param name="parent">The parent.</param> private static void EnumerateContents(ref IPortableDeviceContent content, PortableDeviceFolder parent) { // Get the properties of the object IPortableDeviceProperties properties; content.Properties(out properties); // Enumerate the items contained by the current object IEnumPortableDeviceObjectIDs objectIds; content.EnumObjects(0, parent.Id, null, out objectIds); uint fetched = 0; do { string objectId; objectIds.Next(1, out objectId, ref fetched); if (fetched > 0) { var currentObject = WrapObject(properties, objectId); parent.Files.Add(currentObject); if (currentObject is PortableDeviceFolder) { EnumerateContents(ref content, (PortableDeviceFolder)currentObject); } } } while (fetched > 0); }
public PortableDeviceFolder GetContents() { var root = new PortableDeviceFolder("DEVICE", "DEVICE"); IPortableDeviceContent content; this._device.Content(out content); EnumerateContents(ref content, root); return(root); }