diff --git a/src/messages.cpp b/src/messages.cpp
index 5c9da6237f89bed86fe888836f2fbfcb5e14330d..df99bf0241d24e96fb200644d152d3f82fb641d0 100644
--- a/src/messages.cpp
+++ b/src/messages.cpp
@@ -522,6 +522,30 @@ int Message::receiveCD(unsigned char* intendedDirectory){
   }
 }
 
+int Message::receiveGET(unsigned char* fileName){
+  SubMessage resposta;
+  FILE *file;
+  char* tam;
+  int fileSize;
+
+  if(access((char*)fileName, F_OK) == -1){ // Verifica se o arquivo existe
+    resposta.setData((unsigned char*)'0',14,0); // Manda um Erro
+    send(soquete,resposta.objToString(),resposta.getSize()+4, 0);
+  } else if (access((char*)fileName, R_OK) == -1){ // Verifica permissão de copiar o arquivo
+    resposta.setData((unsigned char*)'1',14,0); // Manda um Erro
+    send(soquete,resposta.objToString(),resposta.getSize()+4, 0);
+  } else {
+    // Calcula o tamanho do arquivo
+    file = fopen((char*)fileName, "r");
+    fseek(file, 0, SEEK_END);
+    fileSize = ftell(file);
+    // Manda o tamanho do arquivo
+    sprintf(tam, "%d", fileSize);
+    resposta.setData((unsigned char*)tam,9,0);
+    send(soquete, resposta.objToString(), resposta.getSize()+4, 0);
+  }
+
+}
 
 int Message::receiveData(unsigned char* fileName, int size){
   int numberOfMessages, messagesCounter = 0, seqCounter;