Advertisement
Martina312

Client

Apr 20th, 2020
385
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.81 KB | None | 0 0
  1. package ispitna;
  2.  
  3. import java.io.*;
  4. import java.net.Socket;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7.  
  8. public class Client extends Thread{
  9.     Socket socket;
  10.     String dirPath; //ovde da bara
  11.     String writeDir; //ovde da kreira fajl
  12.  
  13.     public Client(String host, int port, String dirPath, String writeTo) throws IOException {
  14.         socket = new Socket(host,port);
  15.         this.dirPath = dirPath;
  16.         this.writeDir = writeTo;
  17.     }
  18.  
  19.     @Override
  20.     public void run() {
  21.         List<File> files = new ArrayList<>();
  22.         files = listFiles(this.dirPath, files);
  23.  
  24.         try {
  25.             File parent = new File(writeDir);
  26.             File csvFile = new File(parent, "files.csv");
  27.  
  28.             BufferedWriter bw = new BufferedWriter(new FileWriter(csvFile, true));
  29.             DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
  30.  
  31.             for(File f:files){
  32.                 bw.write(f.getAbsolutePath()+", "+f.length());
  33.                 bw.newLine();
  34.             }
  35.             bw.flush();
  36.             bw.close();
  37.  
  38.             //ja prakjame goleminata na csv fajlot i poslednoto modificiranje na serverot
  39.             outputStream.writeUTF(csvFile.length()+","+csvFile.lastModified());
  40.  
  41.         } catch (IOException e) {
  42.             e.printStackTrace();
  43.         }
  44.  
  45.     }
  46.  
  47.     public List<File> listFiles(String dirPath, List<File> list){
  48.         File dir = new File(dirPath);
  49.  
  50.         File [] files = dir.listFiles();
  51.  
  52.         for(File f:files){
  53.             if(f.isDirectory()){
  54.                 listFiles(f.getAbsolutePath(), list);
  55.             }
  56.             else if ((f.getName().contains(".txt") || f.getName().contains(".dat")) && f.length() < 1024*512){
  57.                 list.add(f);
  58.             }
  59.         }
  60.  
  61.         return list;
  62.     }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement