Commit b8e4c2d6 authored by Rina Sergeeva's avatar Rina Sergeeva

temp

parent 51990097
......@@ -11,11 +11,11 @@ public class FileSearcher {
private List<File> monitoredFiles = new ArrayList<>();
public List<File> prepareFiles(File root) {
monitor.start();
monitor.registerDir(root);
// monitor.start();
// monitor.registerDir(root);
List<File> foundedFiles = scanDirectory(root);
foundedFiles.addAll(monitoredFiles);
monitor.stopMonitoring();
// monitor.stopMonitoring();
return foundedFiles;
}
......@@ -27,7 +27,11 @@ public class FileSearcher {
if (file.isDirectory()) {
monitor.registerDir(file);
files.addAll(scanDirectory(file));
} else {
} else if(getFileExtension(file).equals("zip")){
UnzipUtil unzipUtil = new UnzipUtil();
unzipUtil.unzipArchive(file);
} else
{
files.add(file);
}
}
......@@ -35,6 +39,16 @@ public class FileSearcher {
return files;
}
private static String getFileExtension(File file) {
String fileName = file.getName();
// если в имени файла есть точка и она не является первым символом в названии файла
if(fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0)
// то вырезаем все знаки после последней точки в названии файла, то есть ХХХХХ.txt -> txt
return fileName.substring(fileName.lastIndexOf(".")+1);
// в противном случае возвращаем заглушку, то есть расширение не найдено
else return "";
}
public static synchronized FileSearcher getInstance() {
if (instance == null) {
instance = new FileSearcher();
......
package application.util;
import java.io.*;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class UnzipUtil {
public void unzipArchive(File archive) {
//String archiveDir = archive.getAbsolutePath();
// File destinationDir = new File(destinationPath);
if (!archive.exists() || !archive.canRead()) {
System.out.println("Archive cannot be unzip!");
return;
}
try (ZipFile zip = new ZipFile(archive)) {
Enumeration entries = zip.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = (ZipEntry) entries.nextElement();
System.out.println(entry);
String path = archive.getParent();
if (isZip(new File(entry.getName()))) {
unzipArchive(new File(entry.getName()));
} else if (entry.isDirectory()) {
new File(archive.getParent(), entry.getName()).mkdirs();
} else {
//TODO
write(zip.getInputStream(entry),
new BufferedOutputStream(new FileOutputStream(
new File(archive.getParent(), entry.getName()))));
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public boolean isZip(File file) {
return true;
}
private static void write(InputStream inputStream, OutputStream outputStream) throws IOException {
byte[] buffer = new byte[1024];
int len;
while ((len = inputStream.read(buffer)) >= 0)
outputStream.write(buffer, 0, len);
outputStream.close();
inputStream.close();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment