private void workerLoadFiles_DoWork(object sender, DoWorkEventArgs e) { ICloudDirectoryEntry cloudEntry = (ICloudDirectoryEntry)e.Argument; // Loop on each entries IEnumerator cloudEntries = cloudEntry.GetEnumerator(); while (cloudEntries.MoveNext()) { var entry = cloudEntries.Current; if (entry is ICloudDirectoryEntry) { // Nothing, it is a folder } else if (entry is ICloudFileSystemEntry) { ICloudFileSystemEntry fsEntry = (ICloudFileSystemEntry)entry; // Build new listviewitem object ListViewItem newEntry = new ListViewItem(fsEntry.Name); // Add size (add size to tag for sorting) ListViewItem.ListViewSubItem subItems = newEntry.SubItems.Add(FileSizeFormat.Format(fsEntry.Length)); subItems.Tag = fsEntry.Length; // Add modified date (add date to tag for sorting) subItems = newEntry.SubItems.Add(fsEntry.Modified.ToString()); subItems.Tag = fsEntry.Modified; // Add object to tag newEntry.Tag = fsEntry; // Report progress new entry to worker workerLoadFiles.ReportProgress(0, newEntry); } } }