final FileSystem destFS = getFileSystem(destFilename);
final FileSystem sourceFS = getFileSystem(sourceFilename);
try{
if (destFS == sourceFS)//yes, that's object equals
{
sourceFS.rename(sourceFilename, destFilename);
}
else
{
copyFile(sourceFS.openFileStream(sourceFilename), destFS.writeFileStream(destFilename));
sourceFS.delete(sourceFilename);