diff --git a/file-common/pom.xml b/file-common/pom.xml
index a010b44..ec86aab 100644
--- a/file-common/pom.xml
+++ b/file-common/pom.xml
@@ -14,7 +14,11 @@
jar
-
+
+ com.github.junrar
+ junrar
+ 7.3.0
+
diff --git a/file-common/src/main/java/com/qiwenshare/common/domain/ProxyBean.java b/file-common/src/main/java/com/qiwenshare/common/domain/ProxyBean.java
deleted file mode 100644
index 4319df3..0000000
--- a/file-common/src/main/java/com/qiwenshare/common/domain/ProxyBean.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.qiwenshare.common.domain;
-
-import javax.persistence.*;
-
-/**
- * 代理实体类
- */
-
-public class ProxyBean {
- private long proxyid;
- private String proxyip;
- private int proxyport;
- private int testresult;
- private String testtime;
-
- public ProxyBean(){
-
- }
-
- public ProxyBean(String proxyip, int proxyport) {
- this.proxyip = proxyip;
- this.proxyport = proxyport;
- }
-
- public String getProxyip() {
- return proxyip;
- }
-
- public void setProxyip(String proxyip) {
- this.proxyip = proxyip;
- }
-
- public long getProxyid() {
- return proxyid;
- }
-
- public void setProxyid(long proxyid) {
- this.proxyid = proxyid;
- }
-
- public int getProxyport() {
- return proxyport;
- }
-
- public void setProxyport(int proxyport) {
- this.proxyport = proxyport;
- }
-
- public int getTestresult() {
- return testresult;
- }
-
- public void setTestresult(int testresult) {
- this.testresult = testresult;
- }
-
- public String getTesttime() {
- return testtime;
- }
-
- public void setTesttime(String testtime) {
- this.testtime = testtime;
- }
-}
diff --git a/file-common/src/main/java/com/qiwenshare/common/operation/FileOperation.java b/file-common/src/main/java/com/qiwenshare/common/operation/FileOperation.java
index eaebe8a..35c9334 100644
--- a/file-common/src/main/java/com/qiwenshare/common/operation/FileOperation.java
+++ b/file-common/src/main/java/com/qiwenshare/common/operation/FileOperation.java
@@ -1,5 +1,7 @@
package com.qiwenshare.common.operation;
+import com.github.junrar.Archive;
+import com.github.junrar.rarfile.FileHeader;
import com.qiwenshare.common.util.FileUtil;
import com.qiwenshare.common.util.PathUtil;
import org.slf4j.Logger;
@@ -16,6 +18,7 @@ import java.util.zip.ZipFile;
*/
public class FileOperation {
private static Logger logger = LoggerFactory.getLogger(FileOperation.class);
+
/**
* 创建文件
*
@@ -29,6 +32,7 @@ public class FileOperation {
/**
* 删除文件
+ *
* @param file 文件
* @return 是否删除成功
*/
@@ -42,10 +46,10 @@ public class FileOperation {
}
- if (file.isFile()){
+ if (file.isFile()) {
return file.delete();
} else {
- for (File newfile: file.listFiles()){
+ for (File newfile : file.listFiles()) {
deleteFile(newfile);
}
}
@@ -54,6 +58,7 @@ public class FileOperation {
/**
* 删除文件
+ *
* @param fileUrl 文件路径
* @return 删除是否成功
*/
@@ -70,7 +75,7 @@ public class FileOperation {
*/
public static long getFileSize(String fileUrl) {
File file = newFile(fileUrl);
- if (file.exists()){
+ if (file.exists()) {
return file.length();
}
return 0;
@@ -91,6 +96,7 @@ public class FileOperation {
/**
* 创建目录
+ *
* @param file 文件
* @return 是否创建成功
*/
@@ -108,6 +114,7 @@ public class FileOperation {
/**
* 创建目录
+ *
* @param fileUrl 文件路径
* @return 是否创建成功
*/
@@ -125,7 +132,8 @@ public class FileOperation {
/**
* 拷贝文件
- * @param fileInputStream 文件输入流
+ *
+ * @param fileInputStream 文件输入流
* @param fileOutputStream 文件输出流
* @throws IOException io异常
*/
@@ -166,7 +174,8 @@ public class FileOperation {
/**
* 拷贝文件
- * @param src 源文件
+ *
+ * @param src 源文件
* @param dest 目的文件
* @throws IOException io异常
*/
@@ -181,7 +190,8 @@ public class FileOperation {
/**
* 拷贝文件
- * @param srcUrl 源路径
+ *
+ * @param srcUrl 源路径
* @param destUrl 目的路径
* @throws IOException io异常
*/
@@ -196,26 +206,27 @@ public class FileOperation {
/**
* 文件解压缩
- * @param file 需要解压的文件
+ *
+ * @param sourceFile 需要解压的文件
* @param destDirPath 目的路径
* @return 解压目录列表
*/
- public static List unzip(File file, String destDirPath) {
+ public static List unzip(File sourceFile, String destDirPath) {
ZipFile zipFile = null;
Set set = new HashSet();
// set.add("/");
List fileEntryNameList = new ArrayList<>();
try {
- zipFile = new ZipFile(file);
+ zipFile = new ZipFile(sourceFile);
Enumeration extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry) entries.nextElement();
String[] nameStrArr = entry.getName().split("/");
String nameStr = "/";
- for (int i = 0; i < nameStrArr.length; i++){
- if (!"".equals(nameStrArr[i])){
- nameStr =nameStr + "/" + nameStrArr[i];
+ for (int i = 0; i < nameStrArr.length; i++) {
+ if (!"".equals(nameStrArr[i])) {
+ nameStr = nameStr + "/" + nameStrArr[i];
set.add(nameStr);
}
@@ -263,10 +274,73 @@ public class FileOperation {
}
}
List res = new ArrayList<>(set);
- return res ;
+ return res;
}
- public static long deleteFileFromDisk(String fileurl){
+ /**
+ * 解压rar
+ *
+ * @param sourceFile 需要解压的文件
+ * @param destDirPath 目的路径
+ * @throws Exception
+ */
+ public static void unrar(File sourceFile, String destDirPath) throws Exception {
+ File destDir = new File(destDirPath);
+ Archive archive = null;
+ FileOutputStream fos = null;
+ System.out.println("Starting 开始解压...");
+ try {
+ archive = new Archive(sourceFile);
+ FileHeader fh = archive.nextFileHeader();
+ int count = 0;
+ File destFileName = null;
+ while (fh != null) {
+ System.out.println((++count) + ") " + fh.getFileName());
+ String compressFileName = fh.getFileName().trim();
+ destFileName = new File(destDir.getAbsolutePath() + "/" + compressFileName);
+ if (fh.isDirectory()) {
+ if (!destFileName.exists()) {
+ destFileName.mkdirs();
+ }
+ fh = archive.nextFileHeader();
+ continue;
+ }
+ if (!destFileName.getParentFile().exists()) {
+ destFileName.getParentFile().mkdirs();
+ }
+
+
+ fos = new FileOutputStream(destFileName);
+ archive.extractFile(fh, fos);
+ fos.close();
+ fos = null;
+ fh = archive.nextFileHeader();
+ }
+
+ archive.close();
+ archive = null;
+ System.out.println("Finished 解压完成!");
+ } catch (Exception e) {
+ throw e;
+ } finally {
+ if (fos != null) {
+ try {
+ fos.close();
+ fos = null;
+ } catch (Exception e) {
+ }
+ }
+ if (archive != null) {
+ try {
+ archive.close();
+ archive = null;
+ } catch (Exception e) {
+ }
+ }
+ }
+ }
+
+ public static long deleteFileFromDisk(String fileurl) {
String fileUrl = PathUtil.getStaticPath() + fileurl;
String extendName = FileUtil.getFileType(fileUrl);
String minFileUrl = fileUrl.replace("." + extendName, "_min." + extendName);