Skip to content

Commit

Permalink
FileFinder class for finding distinct filenames and existing files. #21
Browse files Browse the repository at this point in the history
  • Loading branch information
gorkemmulayim committed Jan 1, 2017
1 parent 6b8ecd9 commit cc51c69
Show file tree
Hide file tree
Showing 7 changed files with 103 additions and 29 deletions.
3 changes: 1 addition & 2 deletions Tilki/nbproject/private/private.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/home/rootg/Git%20Projects/Tilki/Tilki/src/com/kasirgalabs/tilki/server/KeyVerify.java</file>
<file>file:/home/rootg/Git%20Projects/Tilki/Tilki/src/com/kasirgalabs/tilki/utils/Zip.java</file>
<file>file:/home/rootg/Git%20Projects/Tilki/Tilki/src/com/kasirgalabs/tilki/client/ZipAndUpload.java</file>
<file>file:/home/rootg/Git%20Projects/Tilki/Tilki/src/com/kasirgalabs/tilki/utils/ZipResult.java</file>
</group>
</open-files>
Expand Down
18 changes: 5 additions & 13 deletions Tilki/src/com/kasirgalabs/tilki/client/CaptureDesktop.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.kasirgalabs.tilki.client;

import com.kasirgalabs.tilki.utils.FileFinder;
import com.teamdev.jxcapture.Codec;
import com.teamdev.jxcapture.CompressionQuality;
import com.teamdev.jxcapture.EncodingParameters;
Expand All @@ -22,21 +23,12 @@ public void StartCaptureDesktop(String a, String b) {
a = a.toLowerCase();
personName = a;
format = videoCapture.getVideoFormat().getId().toString();
String videoName = personName + "." + format;
File videoFileObject = new File(personName + "." + format);
if(videoFileObject.exists()) // File exists, try finding new file name.
{
for(int i = 0; i < 100; i++) {
videoFileObject = new File(i + "_" + videoName);
if(!videoFileObject.exists()) {
videoName = i + "_" + videoName;
break;
}
}
}
String videoName = FileFinder.generateFileName(
personName + "." + format);
File video = new File(videoName);

CompressionQuality q = CompressionQuality.BEST;

File video = new File(videoName);
EncodingParameters encodingParameters = new EncodingParameters(video);
// Resize output video
encodingParameters.setSize(new Dimension(800, 600));
Expand Down
14 changes: 5 additions & 9 deletions Tilki/src/com/kasirgalabs/tilki/client/MainClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.kasirgalabs.tilki.utils.Exam;
import com.kasirgalabs.tilki.utils.ExamListModel;
import com.kasirgalabs.tilki.utils.FileFinder;
import com.kasirgalabs.tilki.utils.FileListModel;
import java.awt.Color;
import java.awt.Component;
Expand Down Expand Up @@ -824,15 +825,10 @@ private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS
}

String target_file = cam.getPersonName() + "." + cam.getFormat();
File target_file_object = new File(target_file);
if(target_file_object.exists()) {
filesThatWillUpload.add(new File(target_file));
for(int i = 0; i < 100; i++) {
target_file_object = new File(i + "_" + target_file);
if(target_file_object.exists()) {
filesThatWillUpload.add(new File(i + "_" + target_file));
}
}
ArrayList<String> fileList = FileFinder.findGeneratedFileNames(
target_file);
for(String fileName : fileList) {
filesThatWillUpload.add(new File(fileName));
}
ArrayList<File> codeFiles = new ArrayList<File>(0);
for(int i = 0; i < flm.getSize(); i++) {
Expand Down
45 changes: 44 additions & 1 deletion Tilki/src/com/kasirgalabs/tilki/client/ZipAndUpload.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.kasirgalabs.tilki.client;

import com.kasirgalabs.tilki.utils.Zip;
import com.kasirgalabs.tilki.utils.ZipResult;
import java.awt.Cursor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
Expand All @@ -18,7 +20,15 @@
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.HashSet;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.swing.ImageIcon;
Expand Down Expand Up @@ -57,7 +67,40 @@ private class Task extends SwingWorker<String, Void> {
*/
@Override
public String doInBackground() throws IOException {
String zipName = createZipFile(codeFiles);
//String zipName = createZipFile(codeFiles);
String zipName = "Test.zip";
Zip zip = new Zip(zipName, codeFiles);
ExecutorService executor = Executors.newFixedThreadPool(1);
Future future = executor.submit(zip);
HashSet<String> set = new HashSet<String>();
while(!future.isDone()) {
try {
ZipResult zipResult = zip.getProgress(100,
TimeUnit.MILLISECONDS);
if(zipResult == null) {
continue;
}

if(!set.contains(zipResult.getResultFile().getName())) {
queue.add(zipResult.getResultFile().getName() + "\n");
set.add(zipResult.getResultFile().getName());
}
setProgress(zipResult.getResultStatus());
}
catch(InterruptedException ex) {
}
}
try {
int i = (int) future.get();
}
catch(InterruptedException ex) {
Logger.getLogger(ZipAndUpload.class.getName()).log(Level.SEVERE,
null, ex);
}
catch(ExecutionException ex) {
Logger.getLogger(ZipAndUpload.class.getName()).log(Level.SEVERE,
null, ex);
}
codes_md5 = sendFile(zipName, name, id);
codeFilesAreDone = true;
codes_md5 = codes_md5.toUpperCase();
Expand Down
39 changes: 39 additions & 0 deletions Tilki/src/com/kasirgalabs/tilki/utils/FileFinder.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.kasirgalabs.tilki.utils;

import java.io.File;
import java.util.ArrayList;

public class FileFinder {

public static String generateFileName(String fileName) {
File file = new File(fileName);
if(!file.exists()) {
return fileName;
}

String generatedFileName;
for(int i = 0; i < 100; i++) {
generatedFileName = i + "_" + fileName;
if(!new File(generatedFileName).exists()) {
return generatedFileName;
}
}
return null;
}

public static ArrayList<String> findGeneratedFileNames(String fileName) {
ArrayList<String> fileList = new ArrayList<>();
if(new File(fileName).exists()) {
fileList.add(fileName);
}

String generatedFileName;
for(int i = 0; i < 100; i++) {
generatedFileName = i + "_" + fileName;
if(new File(generatedFileName).exists()) {
fileList.add(generatedFileName);
}
}
return fileList;
}
}
9 changes: 7 additions & 2 deletions Tilki/src/com/kasirgalabs/tilki/utils/Zip.java
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,11 @@ private void updateProgress(File file, long writtenBytes, long fileSize) {
ZipResult lastResult = result.peekLast();
ZipResult currentResult = new ZipResult(file,
(int) ((double) writtenBytes / fileSize * 100));

if(lastResult == null) {
result.offerLast(currentResult);
return;
}
if(!lastResult.equals(currentResult)) {
result.offerLast(currentResult);
}
Expand All @@ -122,8 +127,8 @@ public ZipResult getProgress(long timeout, TimeUnit unit) throws InterruptedExce
}

@Override
public Object call() throws Exception {
public Integer call() throws Exception {
createZipFile();
return null;
return 1;
}
}
4 changes: 2 additions & 2 deletions Tilki/src/com/kasirgalabs/tilki/utils/ZipResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public ZipResult(File resultName, int resultStatus) {
this.resultStatus = resultStatus;
}

public File getResultName() {
public File getResultFile() {
return this.resultFile;
}

Expand All @@ -33,7 +33,7 @@ public boolean equals(Object object) {
return false;
}
ZipResult zipResult = (ZipResult) object;
return this.resultFile.equals(zipResult.getResultName())
return this.resultFile.equals(zipResult.getResultFile())
&& this.resultStatus == zipResult.getResultStatus();
}

Expand Down

0 comments on commit cc51c69

Please sign in to comment.