• java中循环遍历某个文件夹下面的文件,不压缩自身的文件夹,然后压缩成tar.gz格式,压缩失败报异常,代码类编写?


    以下是一个使用Java遍历文件夹并将文件压缩成tar.gz格式的示例代码。如果压缩过程中出现异常,会捕获并报告错误:

    java
    Copy code
    import java.io.*;
    import java.util.zip.*;
    import org.apache.commons.compress.archivers.tar.*;

    public class FileCompression {
        public static void main(String[] args) {
            String folderPath = "/path/to/folder"; // 文件夹路径
            String outputFilePath = "/path/to/output.tar.gz"; // 输出文件路径

            try {
                File folder = new File(folderPath);
                FileOutputStream fos = new FileOutputStream(outputFilePath);
                BufferedOutputStream bos = new BufferedOutputStream(fos);
                GZIPOutputStream gzos = new GZIPOutputStream(bos);
                TarArchiveOutputStream tos = new TarArchiveOutputStream(gzos);

                compressFolder(folder, tos, "");

                tos.finish();
                tos.close();

                System.out.println("文件压缩完成。");
            } catch (IOException e) {
                e.printStackTrace();
                System.err.println("文件压缩失败:" + e.getMessage());
            }
        }

        private static void compressFolder(File folder, TarArchiveOutputStream tos, String parentDir) throws IOException {
            File[] files = folder.listFiles();
            byte[] buffer = new byte[1024];

            for (File file : files) {
                if (file.isDirectory()) {
                    continue; // 跳过自身的文件夹
                }

                FileInputStream fis = new FileInputStream(file);
                BufferedInputStream bis = new BufferedInputStream(fis);

                String entryName = parentDir + file.getName();
                TarArchiveEntry entry = new TarArchiveEntry(file, entryName);
                tos.putArchiveEntry(entry);

                int bytesRead;
                while ((bytesRead = bis.read(buffer)) != -1) {
                    tos.write(buffer, 0, bytesRead);
                }

                bis.close();
                tos.closeArchiveEntry();
            }
        }
    }
    请确保将/path/to/folder替换为你想要遍历的文件夹路径,将/path/to/output.tar.gz替换为输出tar.gz文件的路径。此代码使用java.util.zip和org.apache.commons.compress.archivers.tar库来实现文件的压缩。如果发生异常,将打印堆栈跟踪并报告错误消息。在compressFolder方法中,我们添加了一个条件来跳过自身的文件夹,只处理文件。

  • 相关阅读:
    Adobe premiere裁剪视频尺寸并转为GIF格式
    spring注解简单开发
    使用 Python 交互式方法预测股票价格变动概率
    《Python魔法大冒险》005 魔法挑战:自我介绍机器人
    uni-app积极拥抱社区,创建了开放、兼容的插件系统。
    win11 L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误
    Python脚本之并发执行加密方法【一】
    java计算机毕业设计高校就业服务网站MyBatis+系统+LW文档+源码+调试部署
    什么是误差和残差
    二十九、java版 SpringCloud分布式微服务云架构之Java 数据结构
  • 原文地址:https://blog.csdn.net/gb4215287/article/details/133989496