DeleteEncypted.java 3.67 KB
package cryptor;

import javax.swing.*;
import javax.swing.filechooser.FileView;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.text.SimpleDateFormat;
import java.util.Date;

class DeleteEncypted extends Frame {

    String fileIn;

    String fileName;

    String userId;

    String userPW;


    DeleteEncypted(String title, String ID, String PW){

        //Frame(String title)을 호출한다.

        super(title);

        userId = ID;
        userPW = PW;

        //Label의 text정렬을 오른쪽으로
        String folderDir = ".\\" + userId + "\\Encrypted";

        final File dirToLock = new File(folderDir);
        if(!dirToLock.exists())
        {
            JOptionPane.showMessageDialog(null,"No files have been encrypted!");
            return;
        }
        JFileChooser jfc = new JFileChooser(dirToLock);
        jfc.setFileView(new FileView() {
            @Override
            public Boolean isTraversable(File f) {
                return dirToLock.equals(f);
            }
        });

        jfc.showOpenDialog(null);
        fileIn = jfc.getSelectedFile().getAbsolutePath();

        File file = new File(fileIn);

        if(file.exists())
        {
            String fileName = file.getName();
            String passwd2 = userId + ' ' + userPW;
            char[] password2 = passwd2.toCharArray();
            String dir = ".\\" + userId + "\\logs\\" + fileName + ".txt";
            String dir2 = ".\\" + userId + "\\logs\\" + fileName + ".log";

            try {
                Cryptor.decrypt(dir2, dir, password2);
            } catch (IOException ioException) {
                ioException.printStackTrace();
            } catch (GeneralSecurityException generalSecurityException) {
                generalSecurityException.printStackTrace();
            }

            FileOutputStream fos = null;
            try {
                fos = new FileOutputStream(dir,true);
            } catch (FileNotFoundException fileNotFoundException) {
                fileNotFoundException.printStackTrace();
            }
            SimpleDateFormat format1 = new SimpleDateFormat( "yyyy-MM-dd HH:mm");

            Date time = new Date();

            String time1 = format1.format(time);
            String toWrite = "DEL\t" + time1 + '\t' + "Finished using File" + '\n';
            byte[] b = toWrite.getBytes();
            try {
                fos.write(b);
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
            try {
                fos.flush();
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
            try {
                fos.close();
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }

            try {
                Cryptor.encrypt(dir, dir2, password2);
            } catch (IOException ioException) {
                ioException.printStackTrace();
            } catch (GeneralSecurityException generalSecurityException) {
                generalSecurityException.printStackTrace();
            }

            File temp = new File(dir);
            temp.delete();

            file.delete();
        }
    }

    public static void main(String args[]){

        DeleteEncypted f = new DeleteEncypted("Login", "user1", "12345678");

    }



    class EventHandler implements ActionListener{

        public void actionPerformed(ActionEvent e){
            dispose();
        }

    }

}