精华内容
下载资源
问答
  • 7zip压缩文件压缩软件

    2010-08-30 09:40:59
    7zip压缩文件压缩软件7zip压缩文件压缩软件
  • NXPowerLite Desktop 是一款短小精悍且超级实用同时包含图片压缩、视频压缩以及电子邮件压缩于一体的综合型智能型文件压缩软件,能帮助用户一次性批量压缩最多10000个文档、图像、视频等格式,全面兼容PDF、...
  • NXPowerLite Desktop 是一款短小精悍且超级实用同时包含图片压缩、视频压缩以及电子邮件压缩于一体的综合型智能型文件压缩软件,能帮助用户一次性批量压缩最多10000个文档、图像、视频等格式,全面兼容PDF、...
  • 文件压缩软件快压

    2012-12-17 09:45:48
    快压文件压缩软件,用于快速压缩想缩小尺寸的文件,方便文件的上传等操作
  • 设计并实现一个使用哈夫曼算法对文件进行压缩的工具软件。 通过命令行参数指定操作模式(压缩/解压)、源文件名、目标文件名。 压缩操作将源文件按字节读入并统计字节频率,生成字节的哈夫曼编码,将编码树和用...

    数据结构课设(一)

    作业要求

    1、设计并实现一个使用哈夫曼算法对文件进行压缩的工具软件。
    2、通过命令行参数指定操作模式(压缩/解压)、源文件名、目标文件名。
    3、压缩操作将源文件按字节读入并统计字节频率,生成字节的哈夫曼编码,将编码树和用哈夫曼编码对字节重新编码后的结果保存到目标文件中。
    4、解压操作将源文件中的编码树读出,用编码树对后续编码部分进行解码操作,将解码结果保存到目标文件中。

    主要问题

    基于哈夫曼算法的文件压缩要考虑的几个主要问题:
    1、命令行参数的设计与识别。带参数的main函数应该怎么用;设计合适的命令行参数来表示要执行的操作、源文件名和目标文件名。
    2、文件操作。C/C++的文件流库是不一样的,选择你喜欢的文件流库,学习怎么以正确的方式打开文件、逐字节读取文件、写入文件。
    3、设计压缩文件的格式。压缩文件头部应该是存储生成的哈夫曼树,后续才是源文件的压缩(编码)结果。这里的关键是文件头的设计。
    4、统计字节频率,创建哈夫曼树,构造字节哈夫曼编码。
    5、对源文件逐字节进行编码,并重新组合成字节。
    6、解析压缩文件的文件头,还原哈夫曼树。
    7、对压缩文件的编码部分进行解码。

    决定按问题顺序来一个个解决。

    1.命令行参数的设计与识别

    由于老师给出了demo代码,我就直接拿过来用了

    int main(int argc, char *argv[])
    {
        cout << "命令行参数:" << endl;
        for (int i = 0; i < argc; i++)
        {
            cout << "arg[" << i << "]: " << argv[i] << endl;
        }
    
        // 检查命令行参数,如果没有读到所需要的命令行参数,提示使用说明
        if (argc != 4)
        {
            ShowHelp();
        }
        else if (stricmp(argv[1], "z") == 0)
        {
            cout << "Zip " << argv[2] << " to " << argv[3] << " ..." << endl;
            Zip();
        }
        else if (stricmp(argv[1], "e") == 0)
        {
            cout << "Unzip " << argv[2] << " to " << argv[3] << " ..." << endl;
            Unzip();
        }
        else
        {
            ShowHelp();
        }
        return 0;
    }
    
    

    演示
    在这里插入图片描述

    2.文件操作

    这里用的是C++的iostream和fstream文件流库。用二进制的方式逐字节读取文件,可以读入文本图片或者音频等各种格式。

    ifstream instr("in.txt", ios::in | ios::binary);//二进制方式
    if (!instr)
        {
            cerr << "Open in.txt failure." << endl;
            return 0;
        }
    ofstream outstr("out.txt", ios::out | ios::binary);
    if (!outstr)
        {
            cerr << "Create out.txt failure." << endl;
            instr.close();
            return 0;
        }
        char ch;
        while (instr.get(ch))
        {
            outstr.put(ch);
        }
        instr.close();
        outstr.close();
        return 0;
    

    3.设计压缩文件的格式(重点)

    这一步就是压缩文件的关键了,决定你压缩文件最后的大小,如果设计不合理的话压缩率和压缩速度就会极不理想(比如说我的就是),压缩完之后的压缩文件可能比原文件还要大。
    首先压缩文件需要存你的哈夫曼树,然后就是你处理过的文件的哈夫曼编码。
    文件压缩成编码这一步其实很简单,就是把原先的文件通过你构建的哈夫曼转成01序列的哈夫曼编码,然后把这些编码以二进制的形式存进压缩文件就行了。我是每8个字节转成一个unsigned char,然后存入文件。解压缩的时候再把这个还原成哈夫曼编码的形式就行了。
    如果只需要存哈夫曼编码文件,不需要对应的哈夫曼树的话,那么大部分文件是可以压缩的更小的。但是,通常我们解压缩是只需要对压缩文件进行操作的,如果压缩文件里只存有哈夫曼编码的信息,那么我们是无法进行解码的。因此我们必须存进对应的哈夫曼树,这样才能解码还原成原文件。
    不过直接将整棵树全部存进去会使你的压缩文件变得极其大,对于原本体积小的文件比如只有几十字节的txt文本来说,压缩完之后一下子就变成几百字节的东西了。由于我一开始没考虑到这令人窒息的情况,等我全部写完已经提不起兴致去改了,最后做出来的程序对比较大的文件才能起到一定的压缩效果。

    string Str(string s)//将01二进制数转换成字符
    {
        map<int,int> change;
        change[7]=1;
        change[6]=2;
        change[5]=4;
        change[4]=8;
        change[3]=16;
        change[2]=32;
        change[1]=64;
        change[0]=128;
        unsigned char c;
        int n=0;
        string t;
        for(int i=0;i<s.size();i++)
        {
            if(i%8==0&&i!=0)
            {
                c=n;
                t+=c;
                n=0;
            }
            if(s[i]=='1')
                n+=change[i%8];
        }
        c=n;
        t+=c;
        return t;
    }
    
    int Compresses(vector<Hfm> T,string s,char *file)
    {
        cout<<"Zipping..."<<endl;
        ofstream out(file,ios::out|ios::binary);
        int num=T.size();
        out.write((char*)&num,sizeof(int));//树的大小
        out.write((char*)&T[0],T.size()*sizeof(Hfm));//哈夫曼树
        //整理笔记的时候如果这样子做的话存的不是二进制文件而是文本文件,所以消耗的空间大
        int num2=s.size();
        out.write((char*)&num2,sizeof(int));//文件的大小
        out<<Str(s);//哈夫曼编码
        cout<<"Zipped!"<<endl;
        out.close();
        return 0;
    }
    

    在这里我存了树的大小,然后存了树,然后是文件的大小,然后是哈夫曼编码。(极不可取,不要借鉴)

    4.统计字节频率,创建哈夫曼树,构造字节哈夫曼编码。

    这一步没什么好说的,会哈夫曼树就行了。比起找了半天都找不到如何二进制存文件来说,这个在网上随便一搜就能找到。

    用vector<Hfm> T存的哈夫曼树,用map<char,int>统计各个二进制字符出现的次数。
    
    struct Hfm
    {
        char name;//字节名
        int val;//权值,也就是出现的次数
        int parent,lchild,rchild;
         /*Hfm(char n,int v,int p,int l,int r)
        {
            name=n;;
            val=v;
            parent=p;
            lchild=l;
            rchild=r;
        }
        void Show()
        {
            cout<<val<<" "<<parent<<" "<<lchild<<" "<<rchild<<endl;
        }*/
    };
    int CreatTree(map<char,int> arr,vector<Hfm> &T)
    {
        int len=arr.size();
        map<char,int>::iterator iter;
    	for (iter = arr.begin(); iter != arr.end(); iter++) {
                Hfm tt;
        tt.name=iter->first;
        tt.val=iter->second;
        tt.parent=-1;
        tt.lchild=-1;
        tt.rchild=-1;
        T.push_back(tt);
    	}
        for(int i=0;i<len-1;i++)
        {
            int m,n;
            Select(T,m,n);
            Hfm tt;
        tt.name=-1;
        tt.val=T[m].val+T[n].val;
        tt.parent=-1;
        tt.lchild=m;
        tt.rchild=n;
        T.push_back(tt);
        //T.push_back(Hfm(-1,T[m].val+T[n].val,-1,m,n));
        T[m].parent=T.size()-1;
        T[n].parent=T.size()-1;
        }
        return 0;
    }
    

    5.对源文件逐字节进行编码,并重新组合成字节。

    int Hfmcode(vector<Hfm> T,map<char,string> &Code)
    {
        for(int i=0;i<T.size();i++)
        {
            string s;
            stack<char> c;
            if(T[i].lchild==-1&&T[i].rchild==-1)
            {
                int j=i;
                while(T[j].parent>=0){
                        int temp=j;
                j=T[j].parent;
                if(T[j].lchild==temp)
                {
                    c.push('0');
                }
                else c.push('1');
                }
            }
            else break;
            while(!c.empty())
            {
                s=s+c.top();
                c.pop();
            }
            Code[T[i].name]=s;
        }
        return 0;
    }
    int main()
    {
    	vector<Hfm> T;
        map<char,string> Code;
        CreatTree(arr,T);
        Hfmcode(T,Code);
        string Zip;//哈夫曼编码
        for(int i=0;i<s.size();i++)
        {
            Zip+=Code[s[i]];
        }
    }
    

    6.解压缩

    老师给的6、7步我就一块说了,我的压缩效果太差,不好意思写了。

    string Bin(string t,int n)//将0-256的数转换成8位二进制
    {
        map<int,int> change;
        change[7]=1;
        change[6]=2;
        change[5]=4;
        change[4]=8;
        change[3]=16;
        change[2]=32;
        change[1]=64;
        change[0]=128;
        string s;
        for(int j=0;j<t.size();j++)
        {
            unsigned char c=t[j];
            int a=c;
            for(int i=0;i<8;i++)
            {
                if(a>=change[i])
                {
                    a-=change[i];
                    s+='1';
                }
                else s+='0';
            }
        }
        int sur=8-n%8;
        while(sur--)
        {
            s.erase(s.end()-1);
        }
        return s;
    }
    
    int Uncode(vector<Hfm> T,string t,int sur,char *file)
    {
        ofstream Un(file,ios::out|ios::binary);
        int r=T.size()-1;
        int temp=r;
        string s=Bin(t,sur);
        for(int i=0;i<s.size();i++)
        {
            if(s[i]=='0')
            {
                temp=T[r].lchild;
                if(T[temp].lchild==-1&&T[temp].rchild==-1)
                {
                    Un.put(T[temp].name);
                    r=T.size()-1;
                }
                else r=temp;
            }
            else
            {
                temp=T[r].rchild;
                if(T[temp].lchild==-1&&T[temp].rchild==-1)
                {
                    Un.put(T[temp].name);
                    r=T.size()-1;
                }
                else r=temp;
            }
        }
        Un.close();
    
        return 0;
    }
    
    int Uncode2(char *file1,char *file2)
    {
        ifstream ss(file1,ios::in|ios::binary);
        int f;
        ss.read((char*)&f,sizeof(int));
        vector<Hfm> T0(f);
        ss.read((char*)&T0[0],T0.size()*sizeof(Hfm));
        int f2;
        ss.read((char*)&f2,sizeof(int));
        char x;
        string t;
        while(ss.get(x))
        {
            t+=x;
        }
        ss.close();
        Uncode(T0,t,f2,file2);
        cout<<"Unzipped!"<<endl;
        return 0;
    }
    

    结束

    这个算法写的不太好,不过也不想回头去改了,还有两个课设没写,而且期末考试还没复习。
    大概总结一下,其实这个算法算是比较简单的,难点主要在如何进行二进制文件的操作,这些格式转换的乱七八糟的,网上找又不好找,没有统一的方法,只有自己慢慢摸索。经过这几天的学习,好歹熟悉了fstream/ifstream/ofstream这几个文件流的使用。

    源码

    以后源码都上传到我的GitHub上。(假装自己写了很多东西的样子)

    展开全文
  • 这又是一篇用Python写小软件系列,最近有点写上瘾了,文件压缩和解压我们在日常工作学习中会经常用到,比如winrar、快压、好压等压缩软件,猿人学用Python做个简易图形界面的压缩软件。打开之后的界面长这个样子:...

    这又是一篇用Python写小软件系列,最近有点写上瘾了,文件压缩和解压我们在日常工作学习中会经常用到,比如winrar、快压、好压等压缩软件,猿人学用Python做个简易图形界面的压缩软件。

    python-compress-software.jpg

    打开之后的界面长这个样子:

    compress-software-ui.png

    压缩完成后是这个样子:

    compress-software-ui-2.png

    解压完成后是这个样子:

    compress-software-ui-3.png

    看到这个界面,阅读过猿人学之前文章《给宝宝的翻译小软件(续):支持PDF啦!》的老朋友应该能认出来,这是在那个翻译软件的GUI界面上修改的,哈哈。

    Python压缩软件程序实现和分析过程

    首先不像商业压缩软件,我把功能简化了很多,只实现主要的压缩(压缩文件和文件夹)和解压功能。

    Python有一些第三方压缩和解压的库,我选用了zipfile,把文件压缩为.zip,图形化选用了pyqt5,因为之前翻译软件实现过图形化,所以就偷懒拿过来改一下用。

    程序的运行流程是(对照上面的图看):

    首先在下拉框选择是“压缩”还是“解压”,然后点击“选择“按钮选择要执行的文件,选择完成后点击右下角的“开始”按钮,软件就开始执行了。

    整个过程比较简单,主要两个地方卡壳了一下,耗了点时间去解决。

    Python压缩程序第一个卡壳地方是:

    因为要实现压缩文件和文件夹的功能,所以当点击图形界面的”选择“按钮时要支持既能选择文件,又能选择文件夹。

    compress-software-filedialog.jpg

    但是Qt的QFileDialog不支持这样的实现,提供的控件要么只能选文件,要么只能选文件夹,对此花了好几个小时去研究和查阅资料,得出的结论是要继承QFileDialog类,然后重写这个类的部分方法来,实现既能选文件又能选文件夹的功能,于是趟坑去实现了一把,对Qt本身的机制也是一知半解,所以调试了很久。

    重新实现的QFileDialog类代码如下:

    class FileDialog(QtWidgets.QFileDialog):

    def __init__(self, *args, **kwargs):

    super(FileDialog, self).__init__(*args, **kwargs)

    self.setOption(QtWidgets.QFileDialog.DontUseNativeDialog, True)

    self.setFileMode(QtWidgets.QFileDialog.ExistingFiles)

    self.tree = self.findChild(QtWidgets.QTreeView)

    self._selFile = ''

    def accept(self):

    inds = self.tree.selectionModel().selectedIndexes()

    self._selFile = os.path.join(str(self.directory().absolutePath()),str(inds[0].data()))

    print('_selfile:',self._selFile)

    self.hide()

    def selectedFiles(self):

    return self._selFile

    第二个Pyhthon压缩程序卡壳的地方是:

    我把整个程序都写完了,测试了几把没有问题,自己沾沾自喜这个程序真完美。第二天又想起了,想再完整的测试一下,毕竟要写在猿人学公众号上,被人挑刺心里总是不好受的。结果发现压缩时会把你的整个文件路径上的文件夹都压缩进去。

    举个栗子:

    比如要压缩的文件路径是:D:/log/nginx/access.log

    压缩是:D:/log/nginx/access.zip

    解压后,正常情况应该是把文件还原为:

    D:/log/nginx/access/access.log

    但是实际上解压后变成了:

    D:/log/nginx/access/log/nginx/access.log

    就是程序在压缩的时候把文件路径上的目录也都压缩进去了。

    这也调试了好一会,开始以为是把文件路径给传错了。

    结果是自己对zipfile的使用没研究清楚,错误示例如下:

    z = zipfile.Zipfile('D:/log/nginx/access.zip')

    z.write('D:/log/nginx/access.log')

    z.close()

    这样就会把文件路径上的目录全都压缩进去。正确的用法是:

    z = zipfile.Zipfile('D:/log/nginx/access.zip')

    z.write('D:/log/nginx/access.log','access.log')

    z.close()

    为什么头一天测试没有发现这个问题呢?

    因为我之前测试要压缩的文件路径是这样的:D:/access.log

    文件在根目录下面,文件路径上没有其他目录了,所以就发现不了。

    这也告诉我们测试一定要多角度,多场景测试啊。

    两个Python源文件,200多行代码搞定,再一次感叹用Python就是方便。

    把Python压缩程序打包成exe文件

    一样可以使用pyinstaller把程序打包成exe文件,就可以把exe文件发给其他朋友使用了,他们的电脑没有Python开发环境也能运行此程序,当然为了程序稳定,你最好多在几台电脑上测试一下。

    打包命令:

    pyinstaller -F -w -i icon.ico transdocx.py

    Python压缩程序文件结构:

    一个zip_main.py文件(图形界面),一个zip_console.py文件(压缩功能),开发图形界面程序通常是这样,把图形界面部分和业务功能部分要分离,相互不干扰,也方便以后修改。

    程序运行方法:python zip_main.py

    Python压缩程序不足之处

    1.这个程序只能压缩和解压zip文件,不支持rar、tar。

    2.没有严格的容错处理

    3.不支持加密压缩和解压

    还是一样,猿人学Python公众号后台回复:压缩 获得源代码。

    Python小软件系列阅读:

    yrx_banner_pic.jpg

    我的公众号:猿人学 Python 上会分享更多心得体会,敬请关注。

    ***版权申明:若没有特殊说明,文章皆是猿人学 yuanrenxue.com 原创,没有猿人学授权,请勿以任何形式转载。***

    展开全文
  • Ubuntu 文件压缩软件

    2009-10-06 14:15:00
    Ubuntu 的文档管理器,可以对.tar .zip的文件进行解压缩处理。如果需要 rar支持:sudo apt-get install rar 7z支持: apt-get install p7zip

    Ubuntu 的文档管理器,可以对.tar .zip的文件进行解压缩处理。如果需要

     

    rar支持:

    sudo apt-get install rar

     

    7z支持:

     

    apt-get  install  p7zip

    展开全文
  • 文件压缩和解压我们在日常工作学习中会经常用到,比如winrar、快压、好压等压缩软件 打开之后的界面长这个样子: 压缩完成后是这个样子: 解压完成...

    文件压缩和解压我们在日常工作学习中会经常用到,比如winrar、快压、好压等压缩软件

    1240

    打开之后的界面长这个样子:

    1240

    压缩完成后是这个样子:

    1240

    解压完成后是这个样子:

    1240

    Python压缩软件程序实现和分析过程

    首先不像商业压缩软件,我把功能简化了很多,只实现主要的压缩(压缩文件和文件夹)和解压功能。

    Python有一些第三方压缩和解压的库,我选用了zipfile,把文件压缩为.zip,图形化选用了pyqt5,因为之前翻译软件实现过图形化,所以就偷懒拿过来改一下用。

    程序的运行流程是(对照上面的图看):

    首先在下拉框选择是“压缩”还是“解压”,然后点击“选择“按钮选择要执行的文件,选择完成后点击右下角的“开始”按钮,软件就开始执行了。

    整个过程比较简单,主要两个地方卡壳了一下,耗了点时间去解决。

    Python压缩程序第一个卡壳地方是:

    因为要实现压缩文件和文件夹的功能,所以当点击图形界面的”选择“按钮时要支持既能选择文件,又能选择文件夹。

    1240

    但是Qt的QFileDialog不支持这样的实现,提供的控件要么只能选文件,要么只能选文件夹,对此花了好几个小时去研究和查阅资料,得出的结论是要继承QFileDialog类,然后重写这个类的部分方法来,实现既能选文件又能选文件夹的功能,于是趟坑去实现了一把,对Qt本身的机制也是一知半解,所以调试了很久。

    重新实现的QFileDialog类代码如下:

    class FileDialog(QtWidgets.QFileDialog):
        def __init__(self, *args, **kwargs):
            super(FileDialog, self).__init__(*args, **kwargs)
            self.setOption(QtWidgets.QFileDialog.DontUseNativeDialog, True)
            self.setFileMode(QtWidgets.QFileDialog.ExistingFiles)
            self.tree = self.findChild(QtWidgets.QTreeView)
            self._selFile = ''
        def accept(self):
            inds = self.tree.selectionModel().selectedIndexes()
            self._selFile = os.path.join(str(self.directory().absolutePath()),str(inds[0].data()))
            print('_selfile:',self._selFile)
            self.hide()
        def selectedFiles(self):
            return self._selFile
    

    第二个Pyhthon压缩程序卡壳的地方是:

    我把整个程序都写完了,测试了几把没有问题,自己沾沾自喜这个程序真完美。第二天又想起了,想再完整的测试一下,毕竟要写在猿人学公众号上,被人挑刺心里总是不好受的。结果发现压缩时会把你的整个文件路径上的文件夹都压缩进去。

    举个栗子:

    比如要压缩的文件路径是:D:/log/nginx/access.log

    压缩是:D:/log/nginx/access.zip

    解压后,正常情况应该是把文件还原为:

    D:/log/nginx/access/access.log

    但是实际上解压后变成了:

    D:/log/nginx/access/log/nginx/access.log

    就是程序在压缩的时候把文件路径上的目录也都压缩进去了。

    这也调试了好一会,开始以为是把文件路径给传错了。

    结果是自己对zipfile的使用没研究清楚,错误示例如下:

    z = zipfile.Zipfile('D:/log/nginx/access.zip')
    z.write('D:/log/nginx/access.log')
    z.close()
    

    这样就会把文件路径上的目录全都压缩进去。正确的用法是:

    z = zipfile.Zipfile('D:/log/nginx/access.zip')
    z.write('D:/log/nginx/access.log','access.log')
    z.close()
    

    为什么头一天测试没有发现这个问题呢?

    因为我之前测试要压缩的文件路径是这样的:D:/access.log

    文件在根目录下面,文件路径上没有其他目录了,所以就发现不了。

    这也告诉我们测试一定要多角度,多场景测试啊。

    两个Python源文件,200多行代码搞定,再一次感叹用Python就是方便。

    把Python压缩程序打包成exe文件

    一样可以使用pyinstaller把程序打包成exe文件,就可以把exe文件发给其他朋友使用了,他们的电脑没有Python开发环境也能运行此程序,当然为了程序稳定,你最好多在几台电脑上测试一下。

    打包命令:

    pyinstaller -F -w -i icon.ico transdocx.py

    Python压缩程序文件结构:

    一个zip_main.py文件(图形界面),一个zip_console.py文件(压缩功能),开发图形界面程序通常是这样,把图形界面部分和业务功能部分要分离,相互不干扰,也方便以后修改。

    程序运行方法:python zip_main.py

    Python压缩程序****不足之处

    1.这个程序只能压缩和解压zip文件,不支持rar、tar。

    2.没有严格的容错处理

    3.不支持加密压缩和解压


    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913713/viewspace-2646738/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/69913713/viewspace-2646738/

    展开全文
  • 这里主要是对Java文件操作和Java Swing开发的一个巩固.今日闲来无事 , 就做这个项目提升一下自己的编程能力. 知识分类 FileOutputStream操作 文件流操作 JavaSE Swing界面程序开发 单例模式 程序截图主界面功能实现...
  • 几款文件压缩软件可以尽量缩小文件的尺寸,以便你能轻松地存储和共享文件。选择适合的文件压缩软件是棘手的任务,因为不同的软件有不同的优缺点。一些软件可快速压缩庞大文件,另一些软件更易于移植、易于使用。在...
  • Gzip压缩软件(gz文件压缩)

    热门讨论 2009-05-09 13:16:33
    很强大的软件,Gzip压缩软件(gz文件压缩) 武汉中原科技提供
  •  在用电脑储存或者下载东西的时候,我们经常会遇到压缩的文件,或者把文件压缩一下,让文件占用空间变小,从而进行打包上传或者发布给别人,那么究竟如何压缩文件一起来看一下吧。压缩文件我们经常用到的工具是...
  • VC 仿Winrar文件压缩管理软件,与WinRar压缩软件界面一样的文件压缩管理软件,压缩实现部分是直接调用winrar提供的调用接口实现管理,界面部分则是完全模拟。界面如以上截图所示。挺像的吧?
  • 原标题:如何压缩PDF文件,不知道你就亏了~在我们日常学习和日常工作中,pdf...工具/原料方法/步骤方法一:风云文件压缩PDF文件的使用越来越多,今天给大家介绍的这款风云文件压缩软件是我一直在使用的,效果很好。2...
  • bandzip无广告压缩软件,支持全部压缩文件,完全绿色,安装完成即可使用,文件小功能强大
  • PDF文件压缩大小的软件怎么使用呢?很多的办公人员在使用PDF文件,但是对于PDF压缩软件的使用方法还是不了解,今天小编就为大家介绍一下PDF压缩软件的使用方法。操作软件:迅捷压缩软件1:将压缩软件安装到电脑中,...
  • 其实我们可以将文件进行压缩,只要借助pdf压缩软件就行啦。下面我们看看pdf压缩器怎么压缩pdf的大小。 先下载pdf压缩软件到电脑中; 安装好之后打开使用,先选择格式:pdf压缩; 选择好格式之后...
  • WinZip Pro for Mac是Mac平台上一款专业的解压缩软件,WinZip Mac版称得上是世界一流的解压缩软件,WinZip Pro for Mac可以帮助您解压缩所有主要的文件格式,winzip pro mac版支持7Z、JAR、Zip、Zipx、RAR等多种当下...
  • 你有PDF文件过大,不能Email发送的烦恼吗?可以用于压缩PDF文件的工具,有多种压缩比率选择。
  • 我本来是在eclipse中配置tomcat8.5版本开始,...当然这种方法可以适用在压缩软件里面修改压缩完成后的文件 在这里我使用的软件是WinRAR压缩软件 1、选择要执行修改的文件 2、点击右键,进行修改 3、找出在...
  • 功能强大而且简单易用速度较快的压缩软件,快来文章中了解一下吧~1.BetterZip for Mac(Mac解压压缩神器)BetterZip for Mac中文版是一款功能强大的Mac解压压缩神器,如果您只需要较大存档中的一些文件或文件夹,则...
  • 在线压缩转换文件软件

    千次阅读 2018-07-26 15:02:36
    不,我们是真正的理解这些个压缩软件的重要性,才会很无助,我们貌似过得很好,可是我们连真正的压缩都不会,就算了解压缩软件,就真的会准确的使用吗?  每天都在尽情的忙碌中,没有时间,就算压缩文件的时候都在...
  • 图片压缩软件

    2020-01-14 10:46:40
    图片文件压缩软件介绍 1、实现图片的内存压缩、指定像素比例压缩、添加文本水印、添加图标水印等; 2、实现文件夹自动监听,扫描新建的图片文件,任务自动处理,无需手动操作 3、可实现自动选择图片文件处理,或...
  • 压缩软件格式为iso格式,对.exe文件进行压缩软件
  • 压缩文件修复软件 修复工具,很好用。。。。
  • 4、知名免费开源文件压缩软件7-Zip
  • 一个pdf文件压缩的小软件。可以将pdf文件压缩到更小的水平。
  • 一个专门压缩文件软件,可以解压很多的压缩文件

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,064
精华内容 6,825
关键字:

文件压缩软件