windows环境实现批量加密文件,并创建加密文件同名(不带后缀)的文件夹,然后把加密文件和图片和文本放入这个文件夹。

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: windows环境实现批量加密文件,并创建加密文件同名(不带后缀)的文件夹,然后把加密文件和图片和文本放入这个文件夹。

1、 需求

我想把资源文件先加密成压缩文件,然后同时创建每个加密压缩文件同名的文件夹,同时需要把这个加密文件拷贝到这个同名的文件夹,然后还需要把一个图片和一个文本文档同时放进这个文件夹,然后在不加密压缩这个文件夹,上传资源到百度网盘。


2、思路

1)、windows环境用python来实现,能实现生成同名文件夹,然后拷贝文件的时候中文名的文件拷贝都文件夹有问题,估计是编码格式不对,对python不是很熟悉,然后放弃python来处理。


2)、用java来实现,遍历加密文件,然后创建同名(不带后缀)的文件夹,然后把这个加密文件拷贝到这个文件夹,然后删除加密文件,再拷贝图片和文本到这个加密文件夹。


3、具体代码实现过程

1)、批量加密文件

windows环境批量加密文件,我们在需要加密的文件目录新建1.bat文件,内容如下


for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%~dpnX.7z" "%%X" -pcch1233nxecc -mhe -mx=0


注意这里-p后面是密码,这里的密码是cch1233nxecc,用户可以自己设置,点击1.bat就能加密批量压缩。


2)、把压缩成7z的文件手动拿出来,放到一个文件夹里面去,我放在这个目录


F:\didi1\all11_30\C++

20200814165409295.png3)、用java代码实现创建文件夹,然后放拷贝文件进去,然后删除加密文件,然后拷贝具体图片和文本文档到这个文件夹,解压密码图片和文本地址如下


F:\\didi1\\all11_30\\解压密码.png

F:\\didi1\\all11_30\\计算机40多个方向1000多个电子书.txt


代码实现如下

package com.chenyu;
import java.io.File;
public class Test {
  public static void main(String[] args)  
  {
    System.out.println("chen"); 
    String path = "F:\\didi1\\all11_30\\C++";
    File decodePwdPngFile = new File("F:\\didi1\\all11_30\\解压密码.png");
    File txtFile = new File("F:\\didi1\\all11_30\\计算机40多个方向1000多个电子书.txt");
    FileUtil.handleFile(path, decodePwdPngFile, txtFile);
  }
}

FileUtil.java文件如下

package com.chenyu;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.channels.FileChannel;
public class FileUtil {
  /**
   * 创建新的文件夹
   * @param file
   * @return
   */
  public static String getNewDirectoryPath(File file) {
    if (file == null)
      return "chenyu";
    String dirPath = file.getAbsolutePath() + File.separator + file.getName();
    if (dirPath.contains(".")) {
      int index = dirPath.indexOf('.');
      dirPath = dirPath.substring(0, index);
    } else {
      dirPath = dirPath + "1";
    }
    return dirPath;
  }
  /**
   * 处理文件,创建文件夹,然后拷贝文件进去
   * @param path
   */
  public static void handleFile(String path, File decodePwdPngFile, File txtFile) {
    if (path == null || "".equals(path) || decodePwdPngFile == null || txtFile == null)
      return;
    File file = new File(path);
    if (!file.exists())
      return;
    File[] files = file.listFiles();
    if (files == null || files.length == 0)
      return;
    try {
      for (File childFile : files) {
        if (childFile.isDirectory()) {
          System.out.println("文件夹路径是:" + childFile.getAbsolutePath());
          handleFile(childFile.getAbsolutePath(), decodePwdPngFile, txtFile);
        } else {
          System.out.println("文件路径是:" + childFile.getAbsolutePath());
          if (childFile.getAbsolutePath() == null)
            return;
          if (childFile.getName() == null)
            return;
          //得到新的目录
          String dirPath = getNewDirectoryPath(childFile);
          System.out.println("dirPath路径是:" + dirPath);
          File fileDir = new File(dirPath);
          //创建新的目录
          if (!fileDir.exists()) {
            fileDir.mkdirs();
          }
          //构建资源zip文件
          File fileTmp = new File(dirPath, childFile.getName());
          if (!fileTmp.exists()) {
            fileTmp.createNewFile();
          }
          //复制资源zip文件到新的文件夹
          copyFile(childFile, fileTmp);
          //删除zip文件
          childFile.delete();
          //拷贝图片到这个dirPath目录来
          File decodePwdPng = new File(dirPath, "解压密码.png");
          if (!decodePwdPng.exists()) {
            decodePwdPng.createNewFile();
          }
          copyFile(decodePwdPngFile, decodePwdPng);
          //拷贝txt文件到这个dirPath目录来
          File newTxtFile = new File(dirPath, "计算机40多个方向1000多个电子书.txt");
          if (!newTxtFile.exists()) {
            newTxtFile.createNewFile();
          }
          copyFile(txtFile, newTxtFile);
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  /**
   * 文件复制
   * @param srcFile
   * @param dstFile
   * @throws IOException
   */
  public static void copyFile(File srcFile, File dstFile) throws IOException {
    if (srcFile == null || !srcFile.exists()) {
      return;
    }
    if (dstFile == null || !dstFile.exists()) {
      return;
    }
    FileInputStream fileIns = null;
    FileOutputStream fileOuts = null;
    FileChannel source = null;
    FileChannel destination = null;
    try {
      fileIns = new FileInputStream(srcFile);
      fileOuts = new FileOutputStream(dstFile);
      source = fileIns.getChannel();
      destination = fileOuts.getChannel();
      destination.transferFrom(source, 0, source.size());
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (fileIns != null)
        fileIns.close();
      if (fileOuts != null)
        fileOuts.close();
      if (source != null)
        source.close();
      if (destination != null)
        destination.close();
    }
  }
}

 控制台打印

chen
文件路径是:F:\didi1\all11_30\C++\C++ Primer Plus中文版.7z
dirPath路径是:F:\didi1\all11_30\C++\C++ Primer Plus中文版
文件路径是:F:\didi1\all11_30\C++\C专家编程.7z
dirPath路径是:F:\didi1\all11_30\C++\C专家编程
文件路径是:F:\didi1\all11_30\C++\C和指针(第二版)高清.7z
dirPath路径是:F:\didi1\all11_30\C++\C和指针(第二版)高清
文件路径是:F:\didi1\all11_30\C++\C语言深度解剖.7z
dirPath路径是:F:\didi1\all11_30\C++\C语言深度解剖
文件路径是:F:\didi1\all11_30\C++\C陷阱与缺陷.7z
dirPath路径是:F:\didi1\all11_30\C++\C陷阱与缺陷
文件路径是:F:\didi1\all11_30\C++\Effective C  中文版.7z
dirPath路径是:F:\didi1\all11_30\C++\Effective C  中文版
文件路径是:F:\didi1\all11_30\C++\Effective C++(第三版中文版).7z
dirPath路径是:F:\didi1\all11_30\C++\Effective C++(第三版中文版)
文件路径是:F:\didi1\all11_30\C++\Effective STL(中文版).7z
dirPath路径是:F:\didi1\all11_30\C++\Effective STL(中文版)
文件路径是:F:\didi1\all11_30\C++\LinuxC编程一站式学习.7z
dirPath路径是:F:\didi1\all11_30\C++\LinuxC编程一站式学习
文件路径是:F:\didi1\all11_30\C++\More Effective C++.7z
dirPath路径是:F:\didi1\all11_30\C++\More Effective C++
文件路径是:F:\didi1\all11_30\C++\STL源码剖析(侯捷译).7z
dirPath路径是:F:\didi1\all11_30\C++\STL源码剖析(侯捷译)
文件路径是:F:\didi1\all11_30\C++\UNIX编程艺术(中文).7z
dirPath路径是:F:\didi1\all11_30\C++\UNIX编程艺术(中文)
文件路径是:F:\didi1\all11_30\C++\中文版:C++Primer(第三版).7z
dirPath路径是:F:\didi1\all11_30\C++\中文版:C++Primer(第三版)

这里就可以得到我们的结果了

20200814165409295.png

20200814165409295.png

但是我们还需要再把这个文件夹批量不加密压缩,我们依然还是新建2.bat,内容如下

for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\"


点击2.bat文件,效果如下

20200814165409295.png

这里的内容就是我们需要的内容,然后我们需要批量单个上传,我有工具,非常方便。

相关文章
|
13天前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
1月前
|
Dart 搜索推荐 IDE
Windows下Zed编辑器配置Dart环境
本文介绍了Dart编程语言及其主要框架Flutter的优势,并推荐使用轻量级编辑器Zed进行Dart开发。详细步骤包括Dart环境的安装与配置,Zed编辑器的安装与个性化设置,以及如何在Zed中编写并运行Dart的HelloWorld程序。通过自定义任务实现Dart文件的快速运行,提高了开发效率。
|
1月前
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
437 3
|
2月前
|
Oracle 关系型数据库 MySQL
Mysql(1)—简介及Windows环境下载安装
MySQL 是一个流行的关系型数据库管理系统(RDBMS),基于 SQL 进行操作。它由瑞典 MySQL AB 公司开发,后被 Sun Microsystems 收购,现为 Oracle 产品。MySQL 是最广泛使用的开源数据库之一,适用于 Web 应用程序、数据仓库和企业应用。
64 2
|
2月前
|
应用服务中间件 Shell PHP
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
windows系统配置nginx环境运行pbootcms访问首页直接404的问题
|
19天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
20天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
42 10
|
22天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
46 10
|
22天前
|
SQL 安全 网络安全
网络安全漏洞、加密技术与安全意识的知识分享
随着互联网的普及,网络安全问题日益严重。本文将介绍网络安全漏洞的概念、类型和防范措施,以及加密技术的原理和应用。同时,强调提高个人和企业的安全意识对于防范网络攻击的重要性。
|
21天前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。