Для асинхронного копирования файлов в C# вы можете использовать класс FileStream
для чтения и записи файлов, а также асинхронные методы и операторы ввода/вывода.
Первым шагом в асинхронном копировании файлов является определение метода CopyFileAsync
, который будет выполнять копирование файла. Вот пример реализации:
public static async Task CopyFileAsync(string sourceFilePath, string targetFilePath) { using (var sourceStream = new FileStream(sourceFilePath, FileMode.Open, FileAccess.Read, FileShare.Read, bufferSize: 4096, useAsync: true)) using (var targetStream = new FileStream(targetFilePath, FileMode.CreateNew, FileAccess.Write, FileShare.None, bufferSize: 4096, useAsync: true)) { await sourceStream.CopyToAsync(targetStream); } }
В этом примере метод CopyFileAsync
открывает исходный файл для чтения и конечный файл для записи с использованием FileStream
. Затем он вызывает CopyToAsync
, чтобы копировать содержимое исходного файла в целевой файл.
Теперь вы можете использовать этот метод для асинхронного копирования файлов. Вот пример использования:
public static async Task Main(string[] args) { string sourceFilePath = "path_to_source_file"; string targetFilePath = "path_to_target_file"; await CopyFileAsync(sourceFilePath, targetFilePath); Console.WriteLine("File copied successfully!"); }
В этом примере мы создаем асинхронный метод Main
, который вызывает CopyFileAsync
, передавая ему пути к исходному и целевому файлам. Затем ожидается завершение асинхронной операции копирования с помощью await
перед продолжением выполнения кода.
Таким образом, вы можете асинхронно копировать файлы в C# с помощью класса FileStream
и асинхронных методов для выполнения операций ввода/вывода. Это позволяет вам параллельно выполнять копирование файлов, минимизировать блокировки потоков и увеличить производительность вашего приложения.