From 64f681bdca3526321ad28426475f03eb60e6be3b Mon Sep 17 00:00:00 2001 From: RamSaw Date: Mon, 18 Jun 2018 12:04:35 +0300 Subject: [PATCH] Added source of ftpServer, renewd protocol and renewed jar file of FtpServer. Jar is needed to test client logic. --- hw_13/.idea/modules/hw_13_main.iml | 1 - hw_14/FtpServer.jar | Bin 8258 -> 10967 bytes hw_14/FtpServer_old.jar | 0 .../mit/ftpClient/model/FtpClient.java | 13 ++++++++----- 4 files changed, 8 insertions(+), 6 deletions(-) mode change 100755 => 100644 hw_14/FtpServer.jar create mode 100644 hw_14/FtpServer_old.jar diff --git a/hw_13/.idea/modules/hw_13_main.iml b/hw_13/.idea/modules/hw_13_main.iml index 9d18387..5c96a5d 100644 --- a/hw_13/.idea/modules/hw_13_main.iml +++ b/hw_13/.idea/modules/hw_13_main.iml @@ -5,7 +5,6 @@ - diff --git a/hw_14/FtpServer.jar b/hw_14/FtpServer.jar old mode 100755 new mode 100644 index 2951b180b85bd9bb448aaff3d19b90c11caa1780..9bfabc650b8c3d7a172212d2004a21c7ef28c84e GIT binary patch literal 10967 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 literal 8258 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 J_W=b3^*?DNAK3r^ diff --git a/hw_14/FtpServer_old.jar b/hw_14/FtpServer_old.jar new file mode 100644 index 0000000..e69de29 diff --git a/hw_14/src/main/java/com/mikhail/pravilov/mit/ftpClient/model/FtpClient.java b/hw_14/src/main/java/com/mikhail/pravilov/mit/ftpClient/model/FtpClient.java index 13c4b7f..604ccb8 100644 --- a/hw_14/src/main/java/com/mikhail/pravilov/mit/ftpClient/model/FtpClient.java +++ b/hw_14/src/main/java/com/mikhail/pravilov/mit/ftpClient/model/FtpClient.java @@ -73,8 +73,8 @@ void close() throws IOException { */ @NotNull List> list(@NotNull Path path) throws IOException { - String command = "list " + path.toAbsolutePath().toString(); - dataOutputStream.writeUTF(command); + dataOutputStream.writeInt(1); + dataOutputStream.writeUTF(path.toAbsolutePath().toString()); dataOutputStream.flush(); int sizeOfList = dataInputStream.readInt(); List> listOfFiles = new LinkedList<>(); @@ -94,11 +94,14 @@ List> list(@NotNull Path path) throws IOException { * @throws IOException if error occurred during downloading and saving the file. */ void download(@NotNull Path pathToFile, @NotNull Path saveFilePath) throws IOException { - String command = "get " + pathToFile.toAbsolutePath().toString(); - dataOutputStream.writeUTF(command); + dataOutputStream.writeInt(2); + dataOutputStream.writeUTF(pathToFile.toAbsolutePath().toString()); dataOutputStream.flush(); long sizeOfFile = dataInputStream.readLong(); - OutputStream fileWriter = Files.newOutputStream(Files.createFile(saveFilePath)); + if (!saveFilePath.toFile().exists()) { + Files.createFile(saveFilePath); + } + OutputStream fileWriter = Files.newOutputStream(saveFilePath); byte[] buffer = new byte[2048]; for (long i = 0; i < sizeOfFile;) { int numberOfReadBytes = dataInputStream.read(buffer);