Метод copy
Метод copy класса File копирует файл
по указанному пути и возвращает новый объект
File, который ссылается на созданную копию.
В первый параметр мы передаем путь к новому файлу,
во второй - именованный параметр recursive,
который указывает, создавать ли промежуточные
директории при необходимости.
Метод возвращает объект Future<File>, поэтому
его результат нужно получать через await
или метод then.
Синтаксис
file.copy(newPath, {bool recursive = false})
Пример
Давайте создадим файл, запишем в него строку, а затем скопируем его в новый файл:
import 'dart:io';
void main() async
{
File file = File('source.txt');
await file.writeAsString('abcde');
File copy = await file.copy('copy.txt');
String res = await copy.readAsString();
print(res);
}
Результат выполнения кода:
"abcde"
Пример
Давайте скопируем файл в поддиректорию,
включив параметр recursive, чтобы
промежуточные папки создались автоматически:
import 'dart:io';
void main() async
{
File file = File('source.txt');
await file.writeAsString('12345');
File copy = await file.copy('dir/copy.txt', recursive: true);
String res = await copy.readAsString();
print(res);
}
Результат выполнения кода:
"12345"
Пример
Давайте проверим, что после копирования исходный файл остается на месте:
import 'dart:io';
void main() async
{
File file = File('source.txt');
await file.writeAsString('abcde');
await file.copy('copy.txt');
bool res = await file.exists();
print(res);
}
Результат выполнения кода:
true