精华内容
下载资源
问答
  • 1、打开要压缩文件夹,右键终端打开;2、输入压缩命令: tar -zcvf 3、输入输出的压缩文件名,例如:ll.tar.gz。然后在后面输入【*】星号就是所有文件。 4、回车,那么即可压缩,当前目录有个压缩文件。 ...

    1、打开要压缩的文件夹,右键终端打开;2、输入压缩命令:

    tar -zcvf 
    

    在这里插入图片描述
    3、输入输出的压缩文件名,例如:ll.tar.gz。然后在后面输入【*】星号就是所有文件。
    在这里插入图片描述
    4、回车,那么即可压缩,当前目录有个压缩文件。
    在这里插入图片描述

    展开全文
  • zlib库的使用,可以压缩和解压文件夹压缩: CreateDirFromZip("test\\example2", "test\\example.zip"); 解压: CreateZipFromDir("test\\example", "test\\example.zip");
  • PHP压缩一个文件夹里面所有的文件,多文件混合压缩。 本函数可以接受多个源文件(或文件夹)同时压缩。 function createZip($from, $to)。 PHP文件夹打包,以供下载


    PHP压缩一个文件夹里面所有的文件,多文件混合压缩

    p.s. 文件打包,文件夹打包,文件夹加文件压缩,zip函数      


    前言...

    找了好久,都没找到适合自己的函数,遂自建一个。

    本函数可以接受多个源文件(或文件夹)同时压缩,例如使用数组传值:

    $zip_result = createZip( array('A.php', 'B.txt', 'logo.png', '/var/www/assets/css/'),      'result.zip' );

    $zip_result = createZip( ‘/path-to-source-folder/’,  'result.zip' );

    $zip_result = createZip( 'index.html',      'result.zip' );


    注意:

    * 1.需要两个自建函数配合:createZip()  +   recursive_get_files_by_path_of_folder() 
    * 2.主函数一个输出的结果$return['data']['zipFile']['url']需要自己去补充,现在为空。(可选)


    代码:

    <?php
    
    
    
    /**
     * 
     * createZip - 创建压缩包,for文件夹/文件
     * 
     * @param type string-or-array $from  
     *        => 字符串 '/path/to/source/file/or/folder/'
     *        => 或者 包含字符串的数组  array('fileA','FolderA','fileB')
     * @param type string $to 
     *        => 字符串 '/path/to/output.zip'
     * @return array
     *        => array(
     *             'success' => false, 
     *             'message' => '失败原因', 
     *             'data' => array(
     *                 'zipFile' => array(zip文件的信息)
     *             ) 
     *           )
     * @author Rudon[285744011@qq.com]
     * 
     */
    function createZip($from, $to) {
        /* Init */
        $return = array(
            'success' => false,
            'message' => '',
            'data' => array(
                'zipFile' => array(
                    'name' => '',
                    'path_relative' => '',
                    'path_absolute' => '',
                    'url' => '', // 自己添加吧
                    'size' => '',
                    'exists_before' => false
                )
            )
        );
    
        /* Check zip class */
        if (!class_exists('ZipArchive')) {
            $return['message'] = 'Missing ZipArchive module in server.';
            return $return;
        }
    
        /* Check right of write for target zip file */
        $zip = new ZipArchive();
        if (!is_dir(dirname($to))) {
            mkdir(dirname($to), 0755, TRUE);
        }
        if (is_file($to)) {
            $return['data']['zipFile']['exists_before'] = true;
            if ($zip->open($to, ZIPARCHIVE::OVERWRITE) !== TRUE) {
                $return['message'] = "Cannot overwrite: {$to}";
                return $return;
            }
        } else {
            if ($zip->open($to, ZIPARCHIVE::CREATE) !== TRUE) {
                $return['message'] = "Could not create archive: {$to}";
                return $return;
            }
        }
    
    
        /* Check path of source files or folder */
        $source_path_including_dir = array();
        $prefix_relative_path_for_source = '';
        if (is_array($from)) {
            foreach ($from as $path) {
                if (file_exists($path)) {
                    if ($prefix_relative_path_for_source == '') {
                        $prefix_relative_path_for_source = (is_dir($path)) ? realpath($path) : realpath(dirname($path));
                    }
                    $source_path_including_dir[] = $path;
                } else {
                    $return['message'] = 'No such file or folder: ' . $path;
                    return $return;
                }
            }
        } elseif (file_exists($from)) {
            $prefix_relative_path_for_source = (is_dir($from)) ? realpath($from) : realpath(dirname($from));
            $source_path_including_dir[] = $from;
        } else {
            $return['message'] = 'No such file or folder: ' . $from;
            return $return;
        }
        $prefix_relative_path_for_source = rtrim($prefix_relative_path_for_source, '/') . '/';
    
    
        /* Get final list of files, no folder */
        $final_list_of_files = array();
        foreach ($source_path_including_dir as $path) {
            if (is_file($path)) {
                /* File */
                $final_list_of_files[] = $path;
            } else {
                /* Folder */
                $list_of_files = recursive_get_files_by_path_of_folder($path);
                foreach ($list_of_files as $one) {
                    $final_list_of_files[] = $one;
                }
            }
        }
        if (!count($final_list_of_files)) {
            $return['message'] = 'No valid file or folder used to zip';
            return $return;
        }
    
    
        /* Begin to add to zip file */
        foreach ($final_list_of_files as $one_file) {
            $zip->addFile($one_file, str_replace($prefix_relative_path_for_source, '', $one_file));
        }
        $zip->close();
    
        /* Return */
        $return['success'] = true;
        $return['data']['zipFile']['name'] = pathinfo($to, PATHINFO_BASENAME);
        $return['data']['zipFile']['path_relative'] = $to;
        $return['data']['zipFile']['path_absolute'] = realpath($to);
        $return['data']['zipFile']['size'] = number_format(abs(filesize($to) / 1024), 2) . ' KB';
        return $return;
    }
    
    
    /**
     * 获取文件夹下的文件列表,遍历模式
     * 
     * @param type $dir
     * @param type $is_tree
     * @return string
     */
    function recursive_get_files_by_path_of_folder($dir, $is_tree = false) {
        $files = array();
        $dir = preg_replace('/[\/]{1}$/i', '', $dir);
        if (is_dir($dir)) {
            if ($handle = opendir($dir)) {
                while (($file = readdir($handle)) !== false) {
                    if ($file != "." && $file != "..") {
                        if (is_dir($dir . "/" . $file)) {
                            $sub_list = recursive_get_files_by_path_of_folder($dir . "/" . $file, $is_tree);
                            if ($is_tree) {
                                $files[$file] = $sub_list;
                            } else {
                                foreach ($sub_list as $one_sub_file) {
                                    $files[] = $one_sub_file;
                                }
                            }
                        } else {
                            $files[] = $dir . "/" . $file;
                        }
                    }
                }
                closedir($handle);
                return $files;
            }
        } else {
            $files[] = $dir;
            return $files;
        }
    }
    
    
    
    /************************************************
     * 参数$from的可选形式:
     * $from = array('A.php', 'B.php', 'C.php', './folderName/')
     * $from = './folderName/';
     * $from = 'xxx.txt';
     */
    
    
    $from = './folderName/';
    $to = './res/tmp.zip';
    $zip_result = createZip($from, $to);
    print_r($zip_result);
    
    


    结果预览:

    <?php
    Array
    (
    	[success] => true
    	[message] => ''
    	[data] => Array
    		(
    			[zipFile] => Array
    				(
    					[name] => tmp.zip
    					[path_relative] => ./res/tmp.zip
    					[path_absolute] => /var/www/Project/res/tmp.zip
    					[url] => ''
    					[size] => 3.18 KB
    					[exists_before] => false
    				)
    		)
    )







    相关标签:

    PHP文件夹打包,以供下载。
    PHP自带ZIP压缩、解压缩类ZipArchiv介绍及使用。
    php zip文件下载。
    php将文件夹打包成zip文件。
    php将文件夹打包成zip文件的简单实现方法。
    php如何压缩一个文件夹里面所有的文件到zip文件里面。
    使用PHP自带zlib函数 几行代码实现PHP文件打包下载zip。



    展开全文
  • 在Ubuntu下如何压缩一个文件夹

    万次阅读 2019-04-01 15:35:56
    .gz 解压1:gunzip FileName.gz ...压缩:gzip FileName .tar.gz 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName --------------------------------------------- .bz2 ...

    .gz 

    解压1:gunzip FileName.gz
    解压2:gzip -d FileName.gz 
    压缩:gzip FileName 
    .tar.gz 
    解压:tar zxvf FileName.tar.gz 
    压缩:tar zcvf FileName.tar.gz DirName 
    --------------------------------------------- 
    .bz2 
    解压1:bzip2 -d FileName.bz2 
    解压2:bunzip2 FileName.bz2 
    压缩: bzip2 -z FileName 
    .tar.bz2 
    解压:tar jxvf FileName.tar.bz2 
    压缩:tar jcvf FileName.tar.bz2 DirName 
    --------------------------------------------- 
    .bz 
    解压1:bzip2 -d FileName.bz 
    解压2:bunzip2 FileName.bz 
    压缩:未知 
    .tar.bz 
    解压:tar jxvf FileName.tar.bz 
    压缩:未知 
    --------------------------------------------- 
    .Z 
    解压:uncompress FileName.Z 
    压缩:compress FileName 
    .tar.Z 
    解压:tar Zxvf FileName.tar.Z 
    压缩:tar Zcvf FileName.tar.Z DirName 
    --------------------------------------------- 
    .tgz 
    解压:tar zxvf FileName.tgz 
    压缩:未知 
    .tar.tgz 
    解压:tar zxvf FileName.tar.tgz 
    压缩:tar zcvf FileName.tar.tgz FileName 
    --------------------------------------------- 
    .zip 
    解压:unzip FileName.zip 
    压缩:zip FileName.zip DirName 
    --------------------------------------------- 
    .rar 
    解压:rar a FileName.rar 
    压缩:r ar e FileName.rar

    展开全文
  • 转载自: https://blog.csdn.net/huplion/article/details/81121655?utm_source=blogxgwz9
    展开全文
  • Bat批处理压缩文件夹

    2020-05-16 13:39:54
    对一些大批量文件夹文件夹中存在文件),需要进行批处理压缩,需要进行编写bat程序进行处理。有需要的同学,可以在此进行下载使用,不符合要求的,百度自己写。
  • qt 压缩压缩文件和文件夹源码

    热门讨论 2011-10-18 11:39:32
    可是使用quazip类库实现文件和文件夹压缩与解压缩,经测试可以使用
  • qt 压缩文件、文件夹

    2020-11-24 16:05:41
    qt依赖QuaZIP,对文件,文件夹进行压缩压缩,内含例子与编译好的库,VS2015环境编译,配置简单实用方便
  • 大家都知道压缩文件或者文件夹可以为磁盘节省不少空间,那么Linux系统的压缩和解压缩命令都有哪些呢?...下面小编就给大家介绍Linux下tar压缩和解压缩文件夹的命令与参数,希望本文的内容对你能有所帮助。
  • 使用了ICSharpCode.SharpZipLib.dll提供的压缩方法。网上找了好多压缩,遇见中文就会乱码,然后再网上找的修改ICSharpCode.SharpZipLib里面的代码后,重新生成dll文件不会乱码。
  • sudo tar zcvf work.tar.gz work/ sudo tar jcvf work.tar.bz2 work/ ...顺便也写一下解压缩吧 tar xzvf work.tar.gz tar xjvf work.tar.bz2 tar xvf work.tar 查看当前目录使用的总空间大小 ...
  • NULL 博文链接:https://ynshun.iteye.com/blog/1917322
  • linux压缩文件夹命令

    千次阅读 2021-01-25 15:26:37
    例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。 tar -zcvf /home/xahot.tar.gz /xahot zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归 zip [参数] [打包后的文件名] [打包的...
  • 下面小编就为大家带来篇linux tar压缩排除某个文件夹的方法。小编觉得挺不错的,现在就分享给大家,也给大家做参考。一起跟随小编过来看看吧
  • linux++压缩个文件夹

    千次阅读 2021-05-09 08:18:36
    这里讨论使用Python解压如下五种压缩文件:.gz .tar .tgz .zip .rar简介gz: 即gzip,通常只能压缩一个文件。与tar结合起来就可以实现先打包,再压缩。tar: linux系统下的打包工具,只打包,不压缩tgz:即tar.gz。...
  • 主要介绍了Python实现压缩文件夹与解压缩zip文件的方法,涉及Python使用zipfile模块进行zip文件压缩与解压缩相关操作技巧,需要的朋友可以参考下
  • 例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。 zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归 zip [参数] [打包后的文件名] [打包的目录路径] 解压 unzip xaho...
  • 下面小编就为大家分享篇C++ 压缩文件及文件夹方法 使用zlib开源库,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • C# 压缩整个文件夹

    千次阅读 2019-11-09 10:39:58
    ///        ... /// 压缩文件夹            ///           &nbs...
  • linux:压缩某个文件夹的实现方法

    千次阅读 2020-08-11 19:38:22
    例子:把/xahot文件夹打包后生成一个/home/xahot.tar.gz的文件。 zip 压缩方法: 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归 zip [参数] [打包后的文件名] [打包的目录路径] 解压 unzip xahot.zip 不...
  • Linux下的zip压缩解压缩文件夹

    万次阅读 2017-12-15 13:35:47
    实例:压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ============================ 另:有些服务器没有安装zip包执行不了zip...
  • 文件夹下的所有子目录及所有文件进行压缩和解压,需在一起使用,有需要的可以下载下
  • 程序实现压缩与解压缩 zip 程序实现压缩与解压缩 压缩
  • Zipper,一个CobaltStrike文件和文件夹压缩实用程序。 这个CobaltStrike工具允许Red小组压缩本地和UNC路径中的文件和文件夹。 在大型文件或文件夹需要b Zipper(CobaltStrike文件和文件夹压缩实用程序)的情况下,这...
  • gunzip -r hongchangfirst/data ...如何把一个文件夹下的所有文件的内容都合并到一个大文件中? find 04 -type f -name "wire.log.*" | xargs cat > ../all_logs 原文: ...
  • 用vbs实现压缩文件夹的代码,可以压缩文件夹,减少文件占用体积
  • tar压缩和解压文件或文件夹

    万次阅读 多人点赞 2018-08-21 16:08:06
    该命令表示压缩当前文件夹下的文件夹test,压缩后缀名为test.tar.gz 如果不需要压缩成gz,只需要后缀为tar格式的,那么输入如下命令: tar -cvf test.tar ./test/   2. 使用tar解压文件 tar -xzvf test.tar....
  • 主要为大家详细介绍了python实现定时压缩指定文件夹发送邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 详细介绍请看: https://blog.csdn.net/xie1xiao1jun/article/details/81157333

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 314,279
精华内容 125,711
关键字:

压缩一个文件夹