.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);
}
}
}