private void _dc_Ended(IDataOpItem item) { if (item is DownloadDataItem) { DownloadDataItem ddi = item as DownloadDataItem; if (ddi.Success) { if (_excludedItems.Contains(Kits.GetFilename(ddi.Target))) { return; } _downedCount++; //unpackage string target = ddi.Target.Replace(@"\" + _temp, ""); string dir = (new FileInfo(target)).DirectoryName; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } try { int l = ResourcePackage.Unpackage(ddi.Target, target); Notified?.Invoke(CVRDownloadResult.Finished, new FinishedItem { Name = target, Length = l }); } catch { Notified?.Invoke(CVRDownloadResult.UnpackageHappened, target); } if (_requestedCount == _downedCount) { string targetemp = Path.Combine(Target, _temp); if (Directory.Exists(targetemp)) { Kits.DeleteDirectory(targetemp); } Notified?.Invoke(CVRDownloadResult.Completed, _downedCount); } } else { Notified?.Invoke(CVRDownloadResult.DownloadHappened, ddi.Source); } } }