moveContents function

Future<void> moveContents(
  1. Directory source,
  2. Directory destination
)

Implementation

Future<void> moveContents(Directory source, Directory destination) async {
  try {
    if (await source.exists()) {
      final entities = source.listSync(recursive: true);
      for (var entity in entities) {
        final relativePath = entity.path.substring(source.path.length + 1);
        final newPath = '${destination.path}/$relativePath';
        if (entity is File) {
          await entity.rename(newPath);
        } else if (entity is Directory) {
          final newDir = Directory(newPath);
          if (!await newDir.exists()) {
            await newDir.create(recursive: true);
          }
        }
      }
    }
  } catch (e) {
    print('Error moving contents: $e');
  }
}