Beispiel #1
0
        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;
        }
Beispiel #3
0
        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.");
            }
        }