protected 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); }
protected 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 override void RefreshContents() { var root = new PortableDeviceFolder("DEVICE", "DEVICE"); IPortableDeviceContent content; this.portableDevice.Content(out content); EnumerateContents(ref content, root); deviceContents = root; }
public override bool CheckPath(String path) { string[] partsOfPath = path.Split('\\'); PortableDeviceFolder currentFolder = deviceContents; for (int i = 0; i < partsOfPath.Length; i++) { IEnumerable <PortableDeviceObject> matchingFolder = from f in currentFolder.Files where f.Name == partsOfPath[i] select f; if (matchingFolder.Count() == 0) { return(false); } currentFolder = (PortableDeviceFolder)matchingFolder.First(); } return(true); }