static function Rename($oldPath, $newPath)
    {
        if (!File::Exists($oldPath)) {
            throw new Exceptions\PathNotFoundException("File $oldPath doesn't exist");
        }
        if (Folder::Exists($newPath))
        {
            throw new \Exception("Target filename $newPath in use by a directory");
        }
        else if (File::Exists($newPath))
        {
            throw new \Exception("Target file $newPath already exists");
        }
        if (!@rename($oldPath, $newPath)) {
            throw new \Exception("Error renaming file from $oldPath to $newPath");
        }
    }