From 5d739fbf09719fc4e7f86b3ced0ee174c27a5de7 Mon Sep 17 00:00:00 2001 From: whyclj <1525436766@qq.com> Date: 星期五, 26 七月 2019 10:36:58 +0800 Subject: [PATCH] 服务器端修改接收数据库备份文件是压缩包时bug --- DataBase_Bakeup_SocketServer/src/com/main/FileTransferServer.java | 4 +++- DataBase_Bakeup_SocketServer/src/com/main/HzipServer.java | 10 ++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/DataBase_Bakeup_SocketServer/src/com/main/FileTransferServer.java b/DataBase_Bakeup_SocketServer/src/com/main/FileTransferServer.java index 869ea3a..6c1b2bc 100644 --- a/DataBase_Bakeup_SocketServer/src/com/main/FileTransferServer.java +++ b/DataBase_Bakeup_SocketServer/src/com/main/FileTransferServer.java @@ -17,7 +17,7 @@ */ public class FileTransferServer extends ServerSocket { - private static final int SERVER_PORT = 8899; // 服务端端口 + private static final int SERVER_PORT = 10100; // 服务端端口 private static DecimalFormat df = null; @@ -74,6 +74,8 @@ // 文件名和长度 String fileName = dis.readUTF(); long fileLength = dis.readLong(); + + System.out.println(fileName+"====="+fileLength); File directory = new File("D:\\FTCache"); if(!directory.exists()) { directory.mkdir(); diff --git a/DataBase_Bakeup_SocketServer/src/com/main/HzipServer.java b/DataBase_Bakeup_SocketServer/src/com/main/HzipServer.java index e46b66c..c8df969 100644 --- a/DataBase_Bakeup_SocketServer/src/com/main/HzipServer.java +++ b/DataBase_Bakeup_SocketServer/src/com/main/HzipServer.java @@ -41,7 +41,7 @@ InputStream ins = socket.getInputStream(); ZipInputStream zis=new ZipInputStream(ins); - String rootDir=null; + String rootDir="REGULAR_BACKUP"; //在此次连接中,是否是第一次读到ZipEntry.读到的第一个Entry,就是正在被传输的文件夹。 boolean isFirst=true; String savePath="D:"+File.separator+MYSQLBACKUPDIR+File.separator; @@ -59,6 +59,7 @@ while( (ze=zis.getNextEntry())!=null ) { String name=ze.getName(); + System.out.println(name); File file=null; if(ze.isDirectory()) { @@ -96,7 +97,12 @@ } else { - int index=name.indexOf(rootDir); + int index; + if(isFirst) { + index = name.lastIndexOf("\\"); + }else { + index=name.indexOf(rootDir); + } String tempFileDir=name.substring(index,name.length()); file=new File(savePath+tempFileDir); fos=new FileOutputStream(file); -- Gitblit v1.9.1