private static void TestNameChecker() { string directory = @"D:\_Movies\"; var logic = new CopyFunctions(_settings);; //write the findings to temp location var desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); var path = Path.Combine(desktop, "NameChecker.txt"); Helper.DeleteFile(path); var files = Directory.GetFiles(directory, "*", SearchOption.AllDirectories); File.AppendAllText(path, "Movie Name Test..." + Environment.NewLine); foreach (var item in files) { FileInfo fi = new FileInfo(item); //determine the name if (!fi.Extension.ToUpper().Contains(".AVI") && (!fi.Extension.ToUpper().Contains(".MKV")) && (!fi.Extension.ToUpper().Contains(".MP4"))) { continue; } var movieName = logic.GetMovieName(fi.Name); string printString = ""; if (item.Length > 60) { var shortPath = string.Format($"{item.Substring(0, 30)} ... {item.Substring(item.Length - 30, 30)}"); printString = string.Format(" ", 25) + $"{movieName} {shortPath}"; } else { printString = string.Format(" ", 25) + $"{movieName} {item}"; } Console.WriteLine(printString); File.AppendAllText(path, Environment.NewLine + printString); } }
private async void CopyButton_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Source.Text) && !string.IsNullOrEmpty(Target.Text)) { DirectoryInfo source = new DirectoryInfo(Source.Text); DirectoryInfo target = new DirectoryInfo(Target.Text); string result = ""; CopyButton.Enabled = false; await Task.Run(() => CopyTask()); void CopyTask() { CopyFunctions copyFunc = new CopyFunctions(); copyFunc.FileUpdate += AddProgressToListView; result = copyFunc.CopyDirectory(source, target); } ListViewItem lvi = new ListViewItem(); if (result == "Success") { lvi.Text = "Copying completed."; LogsList.Items.Add(lvi); } else if (result == "Same directory") { lvi.Text = "The directories chosen are the same."; LogsList.Items.Add(lvi); } else if (result == "Error") { lvi.Text = "There was an error."; LogsList.Items.Add(lvi); } } else { ListViewItem lvi = new ListViewItem(); lvi.Text = "Folder not chosen."; LogsList.Items.Add(lvi); } CopyButton.Enabled = true; }
private static void CopyFilesToDrive() { var filefuncs = new FileFunctions(_settings); var filesToCopy = filefuncs.GetFilesToCopy(); var logic = new CopyFunctions(_settings); int itemCnt = 0; if (filesToCopy.Count > 0) { foreach (var item in filesToCopy) { try { var fileCopied = logic.Copy(item); AddFileToCopyList(Path.GetFileName(item), fileCopied.Item1, fileCopied.Item2); itemCnt++; } catch (Exception ex) { if (ex.HResult == -2147024713) { //file already exists string rawFilePath = ex.Message.ToString(); int fileNameStart = rawFilePath.IndexOf("'"); int fileNameEnd = rawFilePath.LastIndexOf("'"); var filePath = rawFilePath.Substring(fileNameStart, fileNameEnd - fileNameStart); //Name of the file AddFileToCopyList(Path.GetFileName(item), filePath, false); continue; } //log error _logger.LogError(ex, $"Error occurred while copying '{filesToCopy[itemCnt]}'. Error: {ex.Message}"); Console.WriteLine($"Error occurred while copying '{filesToCopy[itemCnt]}'. Error: {ex.Message}"); Console.ReadKey(); } } _logger.LogInformation($"{filesToCopy.Count} files copied."); } }