Exemplo n.º 1
0
 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;
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
        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();
        }