private void serveGet(List<String> request) throws IOException, ClassNotFoundException, WrongVersionNumber{       
        if (request.size() < 3){
            return;
        }
        boolean zip = (request.get(0) != null) && (request.get(0).equals("get_zip"));
        String source = request.get(1);
        List<String> source2 = ServerUtils.parseName(source);
        String destination = request.get(2);
        Path destination2 = Paths.get(destination);
        Integer versionNumber = null;
        if (request.size() >= 4){
            try {
                versionNumber = Integer.valueOf(request.get(3));
            } catch (NumberFormatException ex){}
        }
        DItem item = getDItemFromServer(source2);
        if (!zip && !isCompatible(destination2, item)){            
            stdout.println(messages.getString("dir_into_file"));
            return;
        }        
        boolean res;
        if (item != null){
            if (item.isDir()){
                res = receiveDirectory(source2, destination2, zip, true, item, null);
            } else {
                res = receiveVersion(destination2, source2, versionNumber, zip, null);
            }
            if (res) {
                stdout.println(messages.getString("download_finished"));
            }
        }
    }