uncommon_name Ответов: 1

C# -> переместить все файлы excel из папки a в папку B...


Привет =)

к сожалению, я понятия не имею о C#. Это мой первый маленький проект на C#.

Я просто хочу переместить все файлы Excel из папки A в папку B. Вот и все.

К сожалению, файлы не перемещаются. =( Я надеюсь, что вы можете мне помочь.

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace Move
{
    class Program
    {

        static void Main(string[] args)
        {
            try
            {
                
                string sourceFile = @"C:\Users\Chris\Desktop\*.xlsx";
                string destinationFile = @"C:\Users\Chris\Documents\Excel\*.xlsx";
                File.Move(sourceFile, destinationFile);
                Directory.Move(@"C:\Users\Chris\Desktop\", @"C:\Users\Chris\Documents\Excel");

            }
            finally
            {
                Console.WriteLine("yay");
            }
        }
    }
}

1 Ответов

Рейтинг:
12

Richard Deeming

File.Move будет перемещать только один файл; он не знает, как обрабатывать подстановочные знаки.

Вам нужно перечислить файлы, которые вы хотите переместить, и переместить их по отдельности:

string sourcePath = @"C:\Users\Chris\Desktop\";
string destinationPath = @"C:\Users\Chris\Documents\Excel\";
foreach (string sourceFile in Directory.GetFiles(sourcePath, "*.xlsx"))
{
    string fileName = Path.GetFileName(sourceFile);
    string destinationFile = Path.Combine(destinationPath, fileName);
    File.Move(sourceFile, destinationFile);
}


Файл.Метод Move(String, String) (System.IO) | Microsoft Docs[^]
Каталог.Метод GetFiles (System.IO) | Microsoft Docs[^]
Метод Path.GetFileName (System.IO) | Microsoft Docs[^]
Путь.Комбинированный Метод (Система.IO) | Microsoft Docs[^]


uncommon_name

Как я могу переопределить файлы в папке назначения?

Richard Deeming

К несчастью, File.Move не предоставляет опции "перезаписать". Вам нужно будет проверить, существует ли целевой файл, и удалить его:

if (File.Exists(destinationFile)) File.Delete(destinationFile);
File.Move(sourceFile, destinationFile);

MadMyche

2 варианта - вы можете использовать if File.Exists { File.Delete();} рутина или вы можете разместить файл.Перемещение() в Try...Catch заблокируйте и поместите Delete в Оператор Catch, если это файл уже существует ошибка