📜  文件保护程序 javafx - Java (1)

📅  最后修改于: 2023-12-03 14:55:02.147000             🧑  作者: Mango

文件保护程序 JavaFX - Java

介绍

文件保护程序 JavaFX - Java 是一款 Java 编写的文件保护程序,能够保护用户的文件不被非法使用、篡改和删除。程序基于 JavaFX 技术构建,具有简洁美观的界面和良好的用户体验。该程序支持常见的文件操作,例如添加文件、删除文件、浏览文件、查找文件等。用户可以通过设置密码来保护文件,只有在输入正确的密码后,才能够对文件进行操作。

功能
  1. 添加文件:用户可以通过点击“添加文件”按钮,选择要保护的文件,并设置密码进行保护。

  2. 删除文件:用户可以选择要删除的文件,并输入正确的密码后,删除被保护的文件。

  3. 浏览文件:用户可以通过浏览文件,查看所有被保护的文件列表。

  4. 查找文件:用户可以通过关键字搜索所需的文件,节省时间和操作。

  5. 设置密码:用户可以为被保护的文件设置密码,确保文件的安全性。

界面

JavaFX - Java

代码片段
// 添加文件按钮事件处理
btnAdd.setOnAction(event -> {
    FileChooser fileChooser = new FileChooser();

    // 选择文件
    File selectedFile = fileChooser.showOpenDialog(null);

    if (selectedFile != null) {
        // 设置密码
        TextInputDialog dialog = new TextInputDialog();
        dialog.setTitle("设置密码");
        dialog.setHeaderText(selectedFile.getName());
        dialog.setContentText("请输入密码:");

        Optional<String> result = dialog.showAndWait();
        if (result.isPresent()) {
            String password = result.get();

            // 加密文件
            String fileName = selectedFile.getName();
            String fileExtension = fileName.substring(fileName.lastIndexOf("."));
            String encryptedFileName = UUID.randomUUID().toString() + fileExtension;
            String encryptedFilePath = "./encrypted-files/" + encryptedFileName;
            try {
                encrypt(selectedFile.getAbsolutePath(), encryptedFilePath, password);
                File encryptedFile = new File(encryptedFilePath);
                
                // 添加文件到列表
                fileList.add(new FileItem(encryptedFile.getName(), encryptedFilePath, encryptedFile.length(), password));

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
});

// 删除文件按钮事件处理
btnDelete.setOnAction(event -> {
    FileItem selectedFileItem = tableView.getSelectionModel().getSelectedItem();
    if (selectedFileItem != null) {
        String password = selectedFileItem.getPassword();

        // 验证密码
        TextInputDialog dialog = new TextInputDialog();
        dialog.setTitle("验证密码");
        dialog.setHeaderText(selectedFileItem.getFileName());
        dialog.setContentText("请输入密码:");

        Optional<String> result = dialog.showAndWait();
        if (result.isPresent() && result.get().equals(password)) {
            String filePath = selectedFileItem.getFilePath();
            File encryptedFile = new File(filePath);

            // 删除文件
            if (encryptedFile.delete()) {
                fileList.remove(selectedFileItem);
            }
        }
    }
});

// 查找文件按钮事件处理
btnSearch.setOnAction(event -> {
    String keyword = tfSearch.getText().trim();
    if (!keyword.isEmpty()) {
        ObservableList<FileItem> searchResult = FXCollections.observableArrayList();
        for (FileItem fileItem : fileList) {
            if (fileItem.getFileName().contains(keyword)) {
                searchResult.add(fileItem);
            }
        }
        tableView.setItems(searchResult);
    } else {
        tableView.setItems(fileList);
    }
});

以上是一些核心代码片段,完整代码请查看 GitHub仓库

总结

文件保护程序 JavaFX - Java 是一款简单易用的文件保护工具,基于 JavaFX 技术实现UI界面,同时利用 Java 语言的文件加密和解密方法,保障用户的私密文件不被破解和盗用。产品具有简约、美观、安全的特点,可以帮助用户高效安全的管理文件和保障文件安全。