public PlayListItem(string file, string type, string date) { ListFilePath = file; ListType = type; ListDate = date; if (!Load()) Status = PlayListItemStatus.Error; Progress.ForeColor = System.Drawing.Color.FromArgb(128, 255, 128); Progress.Minimum = 0; Progress.Maximum = ClipList.Count; Progress.Value = 0; StartButton.Image = global::ConductorManager.Properties.Resources.Play_icon14; StartButton.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; StartButton.Location = new System.Drawing.Point(821, 500); StartButton.Size = new System.Drawing.Size(60, 23); StartButton.Text = "Start"; StartButton.TextAlign = System.Drawing.ContentAlignment.MiddleRight; StartButton.Click += new EventHandler(StartButton_Click); MainThread = new Thread(new ThreadStart(ProcessList)); }
private void ProcessList() { Computer comp = new Computer(); int copied = 0; Status = PlayListItemStatus.Proccessing; foreach (ClipItem clip in ClipList) { try { string dest = general.getDestinationFile(clip.VideoFile); if (dest == "") { NoDestinationFiles.Add(clip.VideoFile); ProceedFiles++; continue; } string dir = Path.GetDirectoryName(dest); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } if (!File.Exists(dest)) { if (!NoLocaling) { comp.FileSystem.CopyFile(clip.VideoFile, dest, UIOption.AllDialogs, UICancelOption.ThrowException); copied++; } else { ProceedFiles++; continue; } } else { if (Settings.PathDateModified(dest)) { FileInfo srcfi = new FileInfo(clip.VideoFile); FileInfo dstfi = new FileInfo(dest); if (dstfi.LastWriteTime < srcfi.LastWriteTime || srcfi.Length != dstfi.Length) { if (general.DeleteFile(dest)) { comp.FileSystem.CopyFile(clip.VideoFile, dest, UIOption.AllDialogs, UICancelOption.ThrowException); copied++; } } } } ProceedFiles++; Content = Content.Replace(clip.VideoFile, dest); } catch (Exception ex) { Status = PlayListItemStatus.Error; MessageBox.Show("Error (File Copy) : " + ex.Message, "File Copy...", MessageBoxButtons.OK, MessageBoxIcon.Error); } } if (Status != PlayListItemStatus.Error) { Status = PlayListItemStatus.Complete; try { string dest = general.getDestinationFile(ListFilePath); string dir = Path.GetDirectoryName(dest); if (!Directory.Exists(dir)) Directory.CreateDirectory(dir); if (File.Exists(dest) && copied == 0) { return; } File.WriteAllText(dest, Content, Encoding.Default); } catch (Exception ex) { Status = PlayListItemStatus.Error; MessageBox.Show("Error (List File Copy) : " + ex.Message, "List File Copy...", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }