private void SaveTorrentState() { if (handle.NeedSaveResumeData() && !IsEmpty) { handle.SaveResumeData(); var savedFastResume = false; while (!savedFastResume) { var alerts = session.Alerts.PopAll(); if (alerts == null || !alerts.Any()) { break; } foreach (var alert in alerts) { if (alert is SaveResumeDataAlert) { var saveResumeAlert = (SaveResumeDataAlert)alert; if (!Directory.Exists(fastResumeDir)) { Directory.CreateDirectory(fastResumeDir); } var status = saveResumeAlert.Handle.QueryStatus(); File.WriteAllBytes( Path.Combine(fastResumeDir, status.Name + ".fastresume"), saveResumeAlert.ResumeData); savedFastResume = true; break; } } } } }
public void SaveResumeData() { //WARNING //If you pause every torrent individually instead of pausing the session, // every torrent will have its paused state saved in the resume data //Pause and unpause when saving resume data to not f**k up the saved data. cMainForm.session.Pause(); handle.SaveResumeData(); cMainForm.session.Resume(); }