rename method
Renames this file system entity.
Returns a Future<FileSystemEntity> that completes with a
FileSystemEntity instance for the renamed file system entity.
Implementation
@override
Future<File> rename(String newPath) async {
client.log('WebDAV: MOVE (File) $path -> $newPath');
final newName = p.basename(newPath);
final newParentPath = p.dirname(newPath);
final oldParentPath = p.dirname(path);
final resolved = await client.resolvePath(path);
if (newParentPath == oldParentPath) {
// Just rename
await client.renameItem(resolved['uuid'], newName, 'file');
} else {
// Move to new parent
final destResolved = await client.resolvePath(newParentPath);
await client.moveItem(resolved['uuid'], destResolved['uuid'], 'file');
// Then rename if needed
if (p.basename(path) != newName) {
await client.renameItem(resolved['uuid'], newName, 'file');
}
}
return fs.file(newPath);
}