示例#1
0
        private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker thisBackgroundWorker = (BackgroundWorker)sender;

            void FolderBackupStarted(object sender2, FFolder.FolderEventArgs e2)
            {
                thisBackgroundWorker.ReportProgress(0, new BackgroundWorkerStatus()
                {
                    Status1 = string.Format("Scanning {0}...", e2.Path),
                    Status2 = null
                });
            }

            void FolderBackupFinished(object sender2, FFolder.FolderEventArgs e2)
            {
                thisBackgroundWorker.ReportProgress(0, new BackgroundWorkerStatus()
                {
                    Status1 = string.Format("Scanned {0}", e2.Path),
                    Status2 = null
                });
            }

            void FileBackupStarted(object sender2, FFile.FileEventArgs e2)
            {
                return;
            }

            void FileBackupFinished(object sender2, FFile.FileEventArgs e2)
            {
                thisBackgroundWorker.ReportProgress(0, new BackgroundWorkerStatus()
                {
                    Status1 = null,
                    Status2 = string.Format("Backed up {0}", e2.Path)
                });
            }

            foreach (IncludePath includePath in MainDbContext.DB.IncludePaths.OrderBy(p => p.Path.ToLower()))
            {
                if (thisBackgroundWorker.CancellationPending)
                {
                    break;
                }

                FFolder ffolder = new FFolder(includePath.Path);
                ffolder.BackgroundWorker      = thisBackgroundWorker;
                ffolder.FolderBackupStarted  += new FFolder.FolderBackupStartedHandler(FolderBackupStarted);
                ffolder.FolderBackupFinished += new FFolder.FolderBackupFinishedHandler(FolderBackupFinished);
                ffolder.FileBackupStarted    += new FFile.FileBackupStartedHandler(FileBackupStarted);
                ffolder.FileBackupFinished   += new FFile.FileBackupFinishedHandler(FileBackupFinished);
                ffolder.Backup();
            }
        }
 public FFileLogic(FFolder folder)
     : base(folder.Path)
 {
 }