.NET 4.x Переместить все файлы , кроме определённых 3 файлов в папку - C#

Узнай цену своей работы

Формулировка задачи:

Переместить все файлы , кроме определённых 3 файлов в папку "C:\Очистка рабочего стола\Все файлы\1" ? Вообще это весь вопрос

Решение задачи: «.NET 4.x Переместить все файлы , кроме определённых 3 файлов в папку»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.IO;
 
namespace FileMoving
{
    public class Program
    {
        static void Main(string[] args)
        {
            var FromFolder = @"C:\TestFrom";
 
            var ToFolder = @"C:\TestTo";
 
            var NonMovableFiles = new List<string>();
 
            // Добавляемв коллекцию NonMovableFiles имена файлов, которые не нужно перемещать
 
            NonMovableFiles.Add("license.txt");
            NonMovableFiles.Add("filename2.exe");
            NonMovableFiles.Add("filename3.exe");
 
            // Вывод имен файлов, которые не нужно перемещать
            foreach (var fileName in NonMovableFiles)
                Console.WriteLine($"{fileName} will not be moved");
 
            try
            {
                // Считываем в files имена всех файлов в директории FromFolder
                var files = Directory.EnumerateFiles(FromFolder);
 
                foreach (var file in files)
                {
                    // Считываем имена файлов 
                    var fileName = file.Substring(FromFolder.Length);
                    // Если файл не содержится в коллекции NonMovableFiles то выводим "{file} will be moved"
                    if (!NonMovableFiles.Contains(fileName))
                        Console.WriteLine($"{file} will be moved");
                }
                // Последнее китайское предупреждение
                Console.WriteLine($"Press any key to move files form {FromFolder} to {ToFolder} or <Escape> to exit");
 
                if (Console.ReadKey(true).Key == ConsoleKey.Escape)
                    return;
 
                foreach (var file in files)
                {
                    // Снова считываем имена файлов 
                    string fileName = file.Substring(FromFolder.Length);
                    // Если коллекция NonMovableFiles не содержит fileName выполняем перемещение файла
                    if (!NonMovableFiles.Contains(fileName))
                    {
                        try
                        {
                            File.Move(file, ToFolder + fileName);
                            Console.WriteLine("{0} was moved to {1}.", file, ToFolder + fileName);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("The process failed: {0}", e.Message);
                        }
                    }
                }
            }
            // Ловим возможные ошибки ввода-вывода
            catch (Exception e)
            {
                Console.WriteLine("The process failed: {0}", e.Message);
            }
 
            Console.ReadKey(true);
        }
    }
}

Оцени полезность:

12   голосов , оценка 4.333 из 5
Похожие ответы