精华内容
下载资源
问答
  • inux中的tar命令通常用于创建.tar.gz或.tgz...使用以下命令压缩Linux上的整个目录或单个文件。它还将压缩您指定的目录中的每个其他目录 - 换句话说,它以递归方式工作。 tar -czvf name-of-archive.tar.gz /path/...

    inux中的tar命令通常用于创建.tar.gz或.tgz存档文件。此命令有很多选项,但您只需记住几个字母即可使用tar快速创建存档。tar命令也可以提取生成的档案。

    压缩整个目录或单个文件

    使用以下命令压缩Linux上的整个目录或单个文件。它还将压缩您指定的目录中的每个其他目录 - 换句话说,它以递归方式工作。

    tar -czvf name-of-archive.tar.gz /path/to/directory-or-file

    以下是这些开关的实际含义:

    -c:C创建一个存档。

    -z:使用g z ip 压缩存档。

    -v:在创建存档时显示终端的进度,也称为“ v erbose”模式。在这些命令中,v始终是可选的,但它很有用。

    -f:允许您指定˚F存档的ilename。

    如果当前目录中有一个名为“data”的目录,并且要将其保存到名为archive.tar.gz的文件中,则可以运行以下命令:

    tar -czvf archive.tar.gz data

    如果当前系统上有/usr/local/something目录,并且要将其压缩到名为archive.tar.gz的文件,则可以运行以下命令:

    tar -czvf archive.tar.gz /usr/local/something

    提取档案

    存档后,可以使用tar命令将其解压缩。以下命令将archive.tar.gz的内容解压缩到当前目录。

    tar -xzvf archive.tar.gz

    它与我们上面使用的归档创建命令相同,除了-x开关替换-c开关。这指定您要提取存档而不是创建存档。

    您可能希望将存档的内容提取到特定目录。您可以通过将-C开关附加到命令的末尾来完成此操作。例如,以下命令将archive.tar.gz文件的内容解压缩到/ tmp目录。

    tar -xzvf archive.tar.gz -C /tmp

    展开全文
  • SharpZipLib压缩文件和文件夹

    千次阅读 2012-05-28 09:59:56
    正常zip方式压缩文件,然后用wrar工具可以解压出来(开始用wrar3.4版本的怎么也解出来,以为是支持wrar解压,后来改用3.9及4.11版本可以实现正常解压,搞了半天时间,原来是版本问题,版本不对害死人啊),另外...

    本文是在其他人基础上修改而来,测试过程:

    正常zip方式压缩文件,然后用wrar工具可以解压出来(开始用wrar3.4版本的怎么也解不出来,以为是不支持wrar解压,后来改用3.9及4.11版本可以实现正常解压,搞了半天时间,原来是版本问题,版本不对害死人啊),另外wrar压缩时选择“zip”选项压缩时,再用此类进行解压,也可以正常解压。

    在此以做标记,给自己个别人做铺路,以后少走弯路,

    如下列出代码,至于dll自己可以去下载,属于开源类库。

    调用方式,如下:

     private void btnNewZip_Click(object sender, EventArgs e)
            {
                try
                {
                    Common.SharpZipLibHelper zip = new Common.SharpZipLibHelper();
                    //zip.Compress(@"c:\789A", @"c:\789A.zip", true);
                    zip.Compress(@"c:\db.mdb", @"c:\db.zip", true);
                }
                catch { }
            }
    
            private void btnNewUnZip_Click(object sender, EventArgs e)
            {
                try
                {
                    Common.SharpZipLibHelper zip = new Common.SharpZipLibHelper();
                    //zip.UnZipDirectory(@"c:\789A.zip", @"c:\789test", "");
                    zip.UnZipDirectory(@"c:\db.zip", @"c:\dbaa", "");
                }
                catch { }
            }


    以下是helper类库,当中修改了一个地方:


    using System;

    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using ICSharpCode.SharpZipLib.Zip;
    using ICSharpCode.SharpZipLib.Checksums;
    
    namespace Common
    {
        public class SharpZipLibHelper
        {
            private byte[] buffer = new byte[2048];
    
            #region 压缩文件夹,支持递归
    
            /// <summary>
            /// 压缩文件夹
            /// </summary>
            /// <param name="dir">待压缩的文件夹</param>
            /// <param name="targetFileName">压缩后文件路径(包括文件名)</param>
            /// <param name="recursive">是否递归压缩</param>
            /// <returns></returns>
            public bool Compress(string dir, string targetFileName, bool recursive)
            {
                //如果已经存在目标文件,询问用户是否覆盖
                if (File.Exists(targetFileName))
                {
                    // if (!_ProcessOverwrite(targetFileName))
                    return false;
                }
                string[] ars = new string[2];
                if (recursive == false)
                {
                    //return Compress(dir, targetFileName);
                    ars[0] = dir;
                    ars[1] = targetFileName;
                    return ZipFileDictory(ars);
                }
                FileStream ZipFile;
                ZipOutputStream ZipStream;
    
                //open
                ZipFile = File.Create(targetFileName);
                ZipStream = new ZipOutputStream(ZipFile);
    
                if (dir != String.Empty)
                {
                    _CompressFolder(dir, ZipStream, dir.Substring(3));
                }
    
                //close
                ZipStream.Finish();
                ZipStream.Close();
    
                if (File.Exists(targetFileName))
                    return true;
                else
                    return false;
            }
    
    
    
    
    
            /// <summary>
            /// 压缩目录
            /// </summary>
            /// <param name="args">数组(数组[0]: 要压缩的目录; 数组[1]: 压缩的文件名)</param>
            public static bool ZipFileDictory(string[] args)
            {
                ZipOutputStream s = null;
                try
                {
                    string[] filenames = Directory.GetFiles(args[0]);
    
                    Crc32 crc = new Crc32();
                    s = new ZipOutputStream(File.Create(args[1]));
                    s.SetLevel(6);
    
                    foreach (string file in filenames)
                    {
                        //打开压缩文件
                        FileStream fs = File.OpenRead(file);
    
                        byte[] buffer = new byte[fs.Length];
                        fs.Read(buffer, 0, buffer.Length);
                        ZipEntry entry = new ZipEntry(file);
    
                        entry.DateTime = DateTime.Now;
    
                        entry.Size = fs.Length;
                        fs.Close();
    
                        crc.Reset();
                        crc.Update(buffer);
    
                        entry.Crc = crc.Value;
    
                        s.PutNextEntry(entry);
    
                        s.Write(buffer, 0, buffer.Length);
    
                    }
    
                }
                catch (Exception e)
                {
                    return false;
                }
    
                finally
                {
                    s.Finish();
                    s.Close();
                }
                return true;
            }
    
    
    
    
    
            /// <summary>
            /// 压缩某个子文件夹
            /// </summary>
            /// <param name="basePath"></param>
            /// <param name="zips"></param>
            /// <param name="zipfolername"></param>     
            private static void _CompressFolder(string basePath, ZipOutputStream zips, string zipfolername)
            {
                if (File.Exists(basePath))
                {
                    _AddFile(basePath, zips, zipfolername);
                    return;
                }
                string[] names = Directory.GetFiles(basePath);
                foreach (string fileName in names)
                {
                    _AddFile(fileName, zips, zipfolername);
                }
    
                names = Directory.GetDirectories(basePath);
                foreach (string folderName in names)
                {
                    _CompressFolder(folderName, zips, zipfolername);
                }
    
            }
    
            /// <summary>
            /// 压缩某个子文件
            /// </summary>
            /// <param name="fileName"></param>
            /// <param name="zips"></param>
            /// <param name="zipfolername"></param>
            private static void _AddFile(string fileName, ZipOutputStream zips, string zipfolername)
            {
                if (File.Exists(fileName))
                {
                    _CreateZipFile(fileName, zips, zipfolername);
                }
            }
    
            /// <summary>
            /// 压缩单独文件
            /// </summary>
            /// <param name="FileToZip"></param>
            /// <param name="zips"></param>
            /// <param name="zipfolername"></param>
            private static void _CreateZipFile(string FileToZip, ZipOutputStream zips, string zipfolername)
            {
                try
                {
                    FileStream StreamToZip = new FileStream(FileToZip, FileMode.Open, FileAccess.Read);
                    string temp = FileToZip;
                    string temp1 = zipfolername;
                    if (temp1.Length > 0)
                    {
                        int i = temp1.LastIndexOf("\\") + 1;//这个地方原来是个bug用的是"//",导致压缩路径过长路径2012-7-2
                        int j = temp.Length - i;
                        temp = temp.Substring(i, j);
                    }
                    ZipEntry ZipEn = new ZipEntry(temp.Substring(3));
    
                    zips.PutNextEntry(ZipEn);
                    byte[] buffer = new byte[16384];
                    System.Int32 size = StreamToZip.Read(buffer, 0, buffer.Length);
                    zips.Write(buffer, 0, size);
                    try
                    {
                        while (size < StreamToZip.Length)
                        {
                            int sizeRead = StreamToZip.Read(buffer, 0, buffer.Length);
                            zips.Write(buffer, 0, sizeRead);
                            size += sizeRead;
                        }
                    }
                    catch (System.Exception ex)
                    {
                        throw ex;
                    }
    
                    StreamToZip.Close();
                }
                catch (Exception e)
                {
                    throw e;
                }
            }
            #endregion
    
    
    
            #region
    
            /// <summary>
            /// 解压缩目录
            /// </summary>
            /// <param name="zipDirectoryPath">压缩目录路径</param>
            /// <param name="unZipDirecotyPath">解压缩目录路径</param>
            public void UnZipDirectory(string zipDirectoryPath, string unZipDirecotyPath, string Password)
            {
                while (unZipDirecotyPath.LastIndexOf("\\") + 1 == unZipDirecotyPath.Length)//检查路径是否以"\"结尾
                {
                    unZipDirecotyPath = unZipDirecotyPath.Substring(0, unZipDirecotyPath.Length - 1);//如果是则去掉末尾的"\"
                }
    
                using (ZipInputStream zipStream = new ZipInputStream(File.OpenRead(zipDirectoryPath)))
                {
    
                    //判断Password
                    if (Password != null && Password.Length > 0)
                    {
                        zipStream.Password = Password;
                    }
    
                    ZipEntry zipEntry = null;
                    while ((zipEntry = zipStream.GetNextEntry()) != null)
                    {
                        string directoryName = Path.GetDirectoryName(zipEntry.Name);
                        string fileName = Path.GetFileName(zipEntry.Name);
    
                        if (!string.IsNullOrEmpty(directoryName))
                        {
                            Directory.CreateDirectory(unZipDirecotyPath + @"\" + directoryName);
                        }
    
                        if (!string.IsNullOrEmpty(fileName))
                        {
                            if (zipEntry.CompressedSize == 0)
                                break;
                            if (zipEntry.IsDirectory)//如果压缩格式为文件夹方式压缩
                            {
                                directoryName = Path.GetDirectoryName(unZipDirecotyPath + @"\" + zipEntry.Name);
                                Directory.CreateDirectory(directoryName);
                            }
                           else//2012-5-28修改,支持单个文件压缩时自己创建目标文件夹
                            {
                                if (!Directory.Exists(unZipDirecotyPath))
                                {
                                    Directory.CreateDirectory(unZipDirecotyPath);
                                }
                            }
    
                            using (FileStream stream = File.Create(unZipDirecotyPath + @"\" + zipEntry.Name))
                            {
                                while (true)
                                {
                                    int size = zipStream.Read(buffer, 0, buffer.Length);
                                    if (size > 0)
                                    {
                                        stream.Write(buffer, 0, size);
                                    }
                                    else
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
    
    
            #endregion
    
    
        }
    }
    



    
    
    
    
    
    
    
    
    
    
    展开全文
  •   程序员在做web等项目的时候,往往都需要添加文件上传、下载、删除的功能,有时是单... 这篇博文主要是讲如何将多个文件压缩并下载下来: 主要有以下几个步骤:1。 首先先遍历出某个文件夹所含有的所有文件im...

      程序员在做web等项目的时候,往往都需要添加文件上传、下载、删除的功能,有时是单文件,有时多文件批量 操作,而这些功能的代码程序员可以自己收藏起来当成工具使用,这样,程序员在进行程序设计的时候就会事半功倍 了,那么接下来的博客将会介绍各个框架的文件上传和下载功能的使用方法。 

      这篇博文主要是讲如何将多个文件压缩并下载下来:


     主要有以下几个步骤:

    1。 首先先遍历出某个文件夹所含有的所有文件

    import java.io.File;
    import java.util.Vector;
    public class A {
     public static void recursion(String root, Vector<String> vecFile) {
    /*根据路径生成一个文件*/
      File file = new File(root);
      File[] subFile = file.listFiles();
    /*遍历文件里面的所有文件*/
      for (int i = 0; i < subFile.length; i++) {
    /*如果是文件夹,则递归下去寻找文件夹里面的文件*/
    if (subFile[i].isDirectory()) { recursion(subFile[i].getAbsolutePath(), vecFile); } else {
    /*如果不是文件夹的话就直接添加到vector容器里面去
    (vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。)*/
    2.将遍历出来的文件进行压缩和下载:
    
    String filename = subFile[i].getName();
        vecFile.add(filename);
       }
      }
     }
     public static void main(String[] args) {
      Vector<String> vecFile = new Vector<String>();
      recursion("D:/logs/2", vecFile);
      
      for (String fileName : vecFile) {
       System.out.println(fileName);
      }
     }
    } 

    2。 将遍历出来的文件进行压缩和下载:(一个一个压缩)

    2.1 设置下载文件的名称

    String fileName = "temp1.zip";
    		response.setContentType("text/html; charset=UTF-8"); // 设置编码字符
    		response.setContentType("application/x-msdownload"); // 设置内容类型为下载类型
    		response.setHeader("Content-disposition", "attachment;filename=" + fileName);// 设置下载的文件名称
    		OutputStream out = response.getOutputStream(); // 创建页面返回方式为输出流,会自动弹出下载框
    		System.out.println("配置成功");

    2.2 创建压缩文件需要的空的zip包

    String zipBasePath = request.getSession().getServletContext().getRealPath("/logs/2/");
    
    		/* 输出basePath的路径,方便调试 */
    		System.out.println(zipBasePath);
    		/* 创建压缩文件需要的空的zip包 ,这里是自动生成的,不用我们自己去生成 */
    		String zipFilePath = zipBasePath + "temp.zip";
    		System.out.println("create the empty zip file successfully??????");

    2.3 根据临时的zip压缩包路径,创建zip文件

    File zip = new File(zipFilePath);
    		if (!zip.exists()) {
    			zip.createNewFile();
    		}
    System.out.println("create the  zip file successfully");

    2.4 创建zip文件输出流

    FileOutputStream fos = new FileOutputStream(zip);
    		ZipOutputStream zos = new ZipOutputStream(fos);
    		System.out.println("create the empty zip stream successfully");

    2.5 循环读取文件路径集合,获取每一个文件的路径(将文件一个一个进行压缩)

    for (String fp : vecFile) {
    			File f = new File(fp); // 根据文件路径创建文件
    			zipFile(f, zos); // 将每一个文件写入zip文件包内,即进行打包
    		}
    		System.out.println("get the path successfully");
                   // fos.close();//如果这样关两次的话会报错,java.io.IOException: Stream closed
                    zos.close();
    		System.out.println("ok??");

    2.6 将打包后的文件写到客户端,有两种方法可以实现(下面会进行介绍),这里使用缓冲流输出

    InputStream fis = new BufferedInputStream(new FileInputStream(zipFilePath));
    		byte[] buff = new byte[4096];
    		int size = 0;
    		while ((size = fis.read(buff)) != -1) {
    			out.write(buff, 0, size);
    		}
    		System.out.println("package is packed successfully");

    2.7 释放和关闭输入输出流

                    out.flush();//清楚缓存
    		out.close();
    		fis.close();

    2.8 文件压缩的方法

    	public void zipFile(File inputFile, ZipOutputStream zipoutputStream) {
    		try {
    			if (inputFile.exists()) { // 判断文件是否存在
    				if (inputFile.isFile()) { // 判断是否属于文件,还是文件夹
    
    					// 创建输入流读取文件
    					FileInputStream fis = new FileInputStream(inputFile);
    					BufferedInputStream bis = new BufferedInputStream(fis);
    
    					// 将文件写入zip内,即将文件进行打包
    					ZipEntry ze = new ZipEntry(inputFile.getName()); // 获取文件名
    					zipoutputStream.putNextEntry(ze);
    
    					// 写入文件的方法,同上
    					byte[] b = new byte[1024];
    					long l = 0;
    					while (l < inputFile.length()) {
    						int j = bis.read(b, 0, 1024);
    						l += j;
    						zipoutputStream.write(b, 0, j);
    					}
    					// 关闭输入输出流
    					bis.close();
    					fis.close();
    				} else { // 如果是文件夹,则使用穷举的方法获取文件,写入zip
    					try {
    						File[] files = inputFile.listFiles();
    						for (int i = 0; i < files.length; i++) {
    							zipFile(files[i], zipoutputStream);
    						}
    					} catch (Exception e) {
    						e.printStackTrace();
    					}
    				}
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    


    这个是我在团队中的一个项目开发过程。在这个过程中,我主要遇到了几个常见的问题,不过最后都一一被我解决掉了。

    1. 因为我要下载压缩的文件是一个日志不断动态生成的文件,所以需要先对其复制到另外一个文件夹再进行压缩以及下载;

    2. 对IO流的一些 知识不是很熟悉(学习并参考:https://blog.csdn.net/weixin_37766296/article/details/80070847)


    文件从一个文件夹复制到另一个文件夹:

       // 读写文件
        public static void copy1() throws Exception{  
            FileInputStream fis = new FileInputStream("C:\\Users\\Administrator\\Desktop\\1\\log.txt");(原文件路径)  
            FileOutputStream fos = new FileOutputStream("D:\\java1\\eclipse\\javadownload\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp1\\wtpwebapps\\SCNU_OAuth2\\logs\\1\\log.txt");  
            int len = 0;  
            byte[] buf = new byte[1024];  
            while ((len = fis.read(buf)) != -1) {  
                fos.write(buf, 0, len);  
            }  
            fos.close();  
            fis.close();  
        } 
    /*复制过去之后格式发生了变化,故放弃这个方法*/
    	public void copy2() {
    		FileWriter fw = null;
    		BufferedReader br = null;
    		try {
    			fw = new FileWriter(
    					"D:\\java1\\eclipse\\javadownload\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp1\\wtpwebapps\\SCNU_OAuth2\\logs\\1\\log.txt",
    					true);
    			br = new BufferedReader(new InputStreamReader(
    					new FileInputStream("C:\\Users\\Administrator\\Desktop\\1\\log.txt"), "UTF-8"));(原文件路径)
    			String line = null;
    			while ((line = br.readLine()) != null) {
    				// System.out.println("文件内容: " + line);
    				fw.write(line);
    				fw.flush();
    			}
    			br.close();
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			if (fw != null) {
    				try {
    					fw.close();
    				} catch (IOException e) {
    					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    			}
    		}
    	}


    对于单个文件下载:

    可以参考:https://blog.csdn.net/alan_liuyue/article/details/72772502

    参考博文:https://blog.csdn.net/alan_liuyue/article/details/72772502(里面关于流的关闭有点瑕疵)


    欢迎大家前来讨论~
    




    展开全文
  • 这样的压缩文件不需要外部程序来解压自解压文件的内容,它自己便可以运行该项操作。然而 WinRAR 仍然可将自解压文件当成是任何其它的压缩文件处理。所以如果你愿意运行所收到的自解压文件 (比如说,它可能含有病

    压缩与解压缩6—WinRAR 的基本使用

     

      一个 SFX (SelF-eXtracting)自解压文件是压缩文件的一种,它结合了可执行文件模块,一种用以运行从压缩文件解压文件的模块。这样的压缩文件不需要外部程序来解压自解压文件的内容,它自己便可以运行该项操作。然而 WinRAR 仍然可将自解压文件当成是任何其它的压缩文件处理。所以如果你不愿意运行所收到的自解压文件 (比如说,它可能含有病毒时),你可以使用 WinRAR 来查看或是解压它的内容。

    自解压文件通常与其它的可执行文件一样都有 .exe 的扩展名。

      自解压文件是很方便的,如果你想要将压缩文件给某一个人时,但却不知道他们是否有该压缩程序可以解压文件的时候。你也可以使用自解压来发布你自己的软件,例如 WinRAR 的安装程序便是使用图形 GUI RAR 自解压模块 Default.sfx 所制作的。

      要从命令行创建自解压文件,你可以使用 -sfx 开关来制作新的压缩文件,或是 S 来将已存在的压缩文件转换成自解压文件。 在 WinRAR 图形界面则有两种方式,一个是当要创建新的压缩文件时,从压缩文件名和参数对话框选择“创建自解压文件”选项,另一个是输入已存在的压缩文件并单击 “自解压”按钮。

      WinRAR 中包含了数个自解压模块,全部的自解压模块都有 .sfx 扩展名并且必须放在 WinRAR 所在的文件夹中。默认的 WinRAR 始终使用 Default.sfx 模块,但是你也可以直接以“-sfx”开关或是“S”命令来直接指定其它的模块名。例如,转换 myarchive.rar 成为自解压格式,使用 WinCon.SFX 模块运行:

    WinRAR SWinCon.SFX myarchive.rar

      在 WinRAR 图形界面下,你可在菜单中选择你想要用的自解压模块,在当你运行“转换到自解压文件”命令时,它就会出现让你选择。

     

    ㈠、图形界面 RAR 和 ZIP 自解压模块(Default.SFX 和 Zip.SFX)

     

      使用这两种模块你可以创建 GUI (图形模式) 自解压文件 的 32 位 Windows 版本(Windows 95,98,NT 等等 ),这些模块无法在 Windows 3.1 或 DOS 下运行。使用 Default.SFX 模块于 RAR 压缩文件 以及 Zip.SFX 给 ZIP 压缩文件。

     

      在自解压模块包含的 Windows 资源是允许修改成你所需要的样子的。例如,你可以在起始对话框中显示你希望的位图。WinRAR 并不提供修改资源的工具或文档。这是个很复杂的过程,如果你要如此做,你必须有资源编辑器,并知道要怎样使用它们。但如果标准的自解压对话框即可满足你的话,你就不需要再修改资源了。

      在自解压模块包含的 Windows 资源是允许修改成你所需要的样子的。例如,你可以在起始对话框中显示你希望的位图。WinRAR 并不提供修改资源的工具或文档。这是个很复杂的过程,如果你要如此做,你必须有资源编辑器,并知道要怎样使用它们。但如果标准的自解压对话框即可满足你的话,你就不需要再修改资源了。如果你仅仅要改变自解压的位图或图标,你可以使用高级自解压选项对话框中的“文本和图标”。

     

    说明:WinRAR 默认创建的是 RAR 自解压文件,所以在“模块”中只能看到 RAR 自解压模块。如果要创建 ZIP 自解压文件,则需要在“压缩文件格式”中选择为 ZIP 。然后,在“模块”中就可以看到 ZIP 自解压模块了。

     

    1,图形界面自解压模块: 命令行选项

     

     选项 描述
     -d<路径> 设置解压文件的目标路径。
     -p<密码> 指定加密的自解压压缩文件的密码。

     -s, -s1, -s2

     缄默模式。开关 -s 是 -s1 的简明形式。-s 和 -s1 都隐藏 SFX 对话框和解压进程。-s2 隐藏启动对话框,但是显示解压进程。
     -sp<par> 定义传递给在 Setup 命令中指定的应用程序的参数。

     

    2,图形界面自解压模块: 安装命令(自解压脚本命令)

     

    Setup

    命令命令

    语法

    叙述

     Delete Delete=<文件名> 解压前先删除文件
     License License=<许可协议对话框标题 > 显示程序的许可协议
     Overwrite Overwrite=[n] 选择文件的覆盖模式
     Path Path 设置默认目标路径
     Presetup Presetup=<程序> 指定解压前运行的程序
     SavePath SavePath 存储目标路径
     Setup Setup=<程序> 指定解压后运行的程序
     Shortcut shortcut=<目标类型 >,<源名>,<目标文件夹 >,<描述>,<快捷方式名 > 创建解压文件的快捷方式
     Silent Silent[=参数] 跳过开始时的对话框
     TempMode TempMode=[问题叙述 ][@窗口标题文本 ] 解压压缩文件到临时文件夹
     Text Text=<字符串> 添加文本到自解压对话框文本窗口
     Title Title=<标题> 设置自解压对话框标题

     

    3,“高级自解压选项”对话框 

      对话框可通过从把压缩文件转换成自解压格式命令,然后单击“高级自解压选项”按钮启动。它允许指定一些自解压压缩文件的参数,如默认目标路径,窗口标题和文本。它会使用在 Windows 自解压模块专门主题所描述的自解压脚本命令,自动生成脚本。因此你不需要学习脚本语言和自己输入命令,只需要设置想要的选项即可。

      请注意这些自解压参数仅能够应用在 Windows 图形界面模块,而不支持控制台或非 Windows 自解压程序。

      此对话框的自解压参数被结合成一个子对话框,描述如下 :  

     

    ⑴,自解压选项: 常规

     

    解压路径

    设置要解压文件的默认目标路径。你可以选择要将它创建在用户的“Program Files”文件夹,或当前文件夹,或在此指定一个绝对路径。前两种情况不需要包含驱动器号或前缀的“/”反斜线字符,而第三个则必须要有。

    相应的 自解压脚本 命令 - Path

     

    Path=<路径>

    设置默认的目标路径。路径的绝对使用起始点在不更改的情况下为 <驱动器号>:,如果 <路径> 只包含了名称,它将会被附加到“Program Files”文件夹下,如果你希望关闭如此的作用,请从“./”字符开始定义起始 <路径 >

    例子:

    a) 设置“Calc 3.05 beta”为文件夹名,位置在“Program Files”下,当成默认路径:

    Path=Calc 3.05 beta

    b) 设置“C:/Calc”当作默认路径:

    Path=C:/Calc

    c) 设置“Calc”在根目录下当作默认路径:

    Path=./Calc

     

    解压路径/保存并恢复路径

    这个选项允许自解压程序在注册表中存储用户输入的目标路径,并在自解压文件下一次运行时恢复相同的解压路径。原来的路径值被放在输入目标路径区域的列表下拉菜单中,所以用户可以在以前输入的和原始路径中选择。

    当安装新版本或更新一些软件到同样的目录时,这个功能可能很便利。它允许只改变一次目标路径,而不需要每次都输入。

    这只可以用在非空的解压路径区域的组合框中。

    相应的 SFX 脚本 命令 - SavePath

     

    SavePath

    这个命令允许自解压程序在注册表中存储用户输入的目标路径,并在自解压文件下一次运行时恢复相同的 Path。原来的 Path 命令内容被放在输入目标路径区域的列表下拉菜单中,所以用户可以在以前输入的和原始路径中选择。

    当安装新版本或更新一些软件到同样的目录时,这个功能可能很便利。它允许只改变一次目标路径,而不需要每次都输入。

    SavePath 命令只能和 Path 命令一起使用一次。

    例子:

    Path=Calc 3.05

    SavePath

     

    安装程序/解压后运行

    自解压程序在成功解压之后,将试着运行指定的程序。含有解压文件的文件夹,在运行程序之前会被设为当前文件夹。如果程序名包含空格,则它必须使用引号。

    相应的 自解压脚本 命令 - Setup

     

    Setup=<程序>

    在成功解压之后自解压将会试着运行 <程序>。在运行 <程序> 之前,包含已解压文件的文件夹将会设为当前文件夹

    例子:

    Setup=setup.exe

    注意

    1) 如果你在使用自解压运行 InstallShield setup.exe 有问题的话,请试着运行 “Setup.exe /SMS”来代替简洁的“Setup.exe”。此开关允许自解压检测安装程序的退出。

    2) 你可以使用 -sp<参数> 自解压命令行开关 传递可选的参数到 Setup=<程序> 命令指定的程序。

    3) 自解压模块在启动安装程序前设置 sfxnamesfxcmd 环境变量。sfxname 变量包含自解压模块的名字,sfxcmd 变量包含自解压模块接收的完整命令行。所以安装程序可以在需要这样的信息时读取它。安装程序如果需要这些信息可以读取它们。

     

    安装程序/解压前运行

    在开始解压之前,自解压程序会试着运行指定的程序,在运行程序前,目标目录会被设为当前文件夹。如果程序名包含空格,则它必须使用引号。例如,当安装新版要覆盖旧版时,要删除旧版程序的时候,你便可以指定该命令。

    相应的 自解压脚本 命令 - Presetup

     

    Presetup=<程序>

    自解压在解压之前将试着运行 <程序>,在运行 <程序> 之前必须先指定目标文件夹。你可以使用此命令,比如说,当安装新版本于旧版本上面时,用以删除先前的程序版本。如果程序名包含空格,它必须包含在引号之内。

    例子:

    Presetup=uninstall.exe /clean

     

    保存当前设置当成默认值

    保存所有在 “高级自解压选项”对话框 内所做的和当前的设置,并在以后每次创建 自解压 压缩文件时,以它们当作默认值。

     

    ⑵,自解压选项: 高级

     

    -目标文件夹中要删除的文件

    解压前,自解压程序会试着删除所指定的文件或在目标文件夹内的文件。你可以在此输入超过一个以上的文件,要如此做时,文件名之间必须以空格分隔。

    如果在此指定的文件被锁定而无法删除,自解压模块在解压前会试着将它临时重命名,并在 Windows 重新启动时删除它,这能不能成功则取决于 Windows 版本的差异。

    相应的 自解压脚本 命令 - Delete

     

    Delete=<文件名>

    在解压到目标文件夹之前删除指定的文件,允许数个 Delete 命令。

    如果在此指定的文件被锁定而无法删除,自解压模块在解压前会试着将它临时重命名,并在 Windows 重新启动时删除它,这能不能成功则取决于 Windows 版本的差异。

    例子:

    Delete=winrar95.exe

    Delete=rarlng.dll

     

    - 快捷方式

    允许解压后为被压缩文件创建快捷方式。按下“添加快捷方式”按钮来描述一个新的快捷方式。已经输入的快捷方式参数被存储在和快捷方式脚本命令格式相同的列表下。如果你愿意的话,你可以手动编辑它。

    相应的 自解压脚本 命令 - Shortcut

     

    shortcut=<目标类型 >,<源名>,<目标文件夹 >,<描述>,<快捷方式名 >

    为解压的文件常见一个快捷方式。

    目标类型 是一个一个字符宽的区域,可以有下列值:

    D在桌面创建快捷方式
    S在开始菜单创建快捷方式
    P在开始菜单/ 程序中创建快捷方式
    T在启动菜单中创建快捷方式

    源名 是压缩文件名。

    目标文件夹是创建快捷方式的文件夹,如果它不存在,它将被自解压文件创建。

    描述 是描述快捷方式的字符串。

    快捷方式名 是由自解压创建的 .lnk (快捷方式 )文件的文件名。

    所有参数用逗号分隔。如果你需要添加逗号字符在参数内,镶入整个参数引用。如果你需要在字符串中插入一个引用标记,要输入两次引号。只有 目标类型源名是必需的,其它参数可选。

    例子

    在桌面创建在 WinRAR 文件夹中连接到 winrar.exe 的快捷方式,带有“WinRAR 可执行文件”的描述和“WinRAR 压缩文件管理器”的名称:

    Shortcut=D,winrar.exe,WinRAR,“WinRAR 可执行文件”,“WinRAR 压缩文件管理器”

     

    ⑶,自解压选项: 模式

     

    -临时模式/解压文件到临时文件夹

    此选项强制自解压程序创建一个临时文件夹,然后将所有文件解压缩到这个文件夹中,开始运行在 安装程序/解压后运行 区域所指定的程序,并在 安装 程序完成后删除临时文件夹中的所有内容。当运行这些操作时,自解压程序会自动设置为缄默模式 (下面说明)。如果设置“解压压缩文件到临时文件夹”,你也可同时指定 安装 程序且不使用 解压路径 区域。你还可以设置两种可选的字符串参数,即定义问题和解压缩前显示问题的标题。此类型的例子下仅在用户选择“是”按钮时才会开始解压缩。

    相应的 自解压脚本 命令 - TempMode

     

    TempMode=[问题叙述 ][@窗口标题文本 ]

    此命令强制自解压创建一个临时目录,将全部文件解压至此,然后开始运行 Setup 命令所指定的程序,并在完成 Setup 程序之后将临时目录中的内容全部清除。当运行这些操作时,自解压会自动设置为 缄默模式。如果 TempMode 命令存在的话,叙述中将有 Setup 命令且不得使用 path 命令。

    TempMode 命令可以有字符串参数的选项,在解压之前可用以定义问题和问题的标题。这样的例子,仅在当用户选择了“是” 按钮时才会开始解压。

    例子:

    a) TempMode

    b) TempMode=你希望继续安装 Calculator 3.05 吗? Calculator 安装程序

     

    -缄默模式

    默认自解压在开始解压缩前会先询问确认,并允许用户更改目标文件夹。如果你设置“缄默模式”的“隐藏启动时的对话框”,这时会跳过确认画面。如果你也希望隐藏解压缩过程的话,请选择“全部隐藏”。

    相应的 自解压脚本 命令 - Silent

     

    Silent[=参数]

    开始解压时不显示开始对话框。

    参数 可以是 1 或 2。如果 参数 是 1,开始解压对话框会完全隐藏,包含进程指示和文件名。如果 参数 被忽略或是 2,则跳过开始解压的确认,但用户仍然可以看到压缩文件的解压进程。

    例子:

    Silent=2

     

    -覆盖模式

    在此你可以选择让自解压程序如何操作你已存在的文件 : 覆盖之前询问 (默认值 )、永远覆盖或永远跳过。

    相应的 自解压脚本 命令 - Overwrite

     

    Overwrite=[n]

    如果[n]为 0,在覆盖文件之前用户将会被先询问。这是 覆盖命令的默认动作,可以不需要指定。如果 [n]不存在或是等于[1],文件将在没有确认的状况下全部覆盖。如果 [n]等于[2],所有已存在的文件将不会被覆盖。

    例子:

    Overwrite=1

      

    ⑷,自解压选项: 文本和图标

     

    -自解压窗口标题

    设置指定的文本作为自解压窗口的标题。

    相应的 自解压脚本 命令 - Title

     

    Title=<标题>

    设置自解压的窗口标题。

    例子:

    Title==Calculator,版本 3.05

     

    -自解压窗口显示的文本

    添加在自解压模块的文本输出窗口中指定的纯文本或 HTML 字符串。

    对于纯文本,为了使字符串和对话框匹配,自解压模块将合并和重新格式化指定的字符串。所以如果你希望重新生成一个新的段落,你需要在它前面放一个空的字符串。

    你可以使用 HTML 来控制颜色,字体和显示的格式。 HTML 语法的描述可以在 The World Wide Web Consortium 站点找到。也可以使用网页编辑程序来产生 HTML 文本。

    相应的 自解压脚本 命令 - Text

     

    此命令支持两种语法版本:

    a)

    Text=<字符串>

    b)

    Text

    {

    字符串 1

    字符串 2

    ...

    }

    它在自解压模块的输出窗口添加指定纯文本或 HTML字符串。当自解压模块第一次遇到 Text 命令,在添加<字符串 >前,它重设这个窗口默认内容。其后的命令追加 <字符串>到已经存在的文本后。

    依赖于使用的语法,这个命令可以一次添加一个或者数个字符串。

    对于纯文本的过程中,为了使字符串和对话框匹配,自解压模块将合并和重新格式化指定的字符串。所以如果你希望重新产生一个新的段落,你需要在它前面放一个空的字符串。

    你可以使用 HTML 来控制颜色,字体和显示的格式。 HTML 语法的描述可以在 The World Wide Web Consortium 站点找到。也可以使用网页编辑程序来产生 HTML 文本。

    如果文本由数个字符串组成,自解压模块把‘ }’字符作为文本的结束标记,所以你在你的文本的字符串的首个位置不应该使用此字符。如果你需要在字符串的开头使用‘ }’字符,在它前面插入空格。

    例子:

    a) 添加单个字符串到对话框窗口

    Text=这是我的新程序

    b) 添加指定文本到对话框窗口“Text

    {

    此程序最有趣的特性是:

    - 支持 Windows 剪贴板;

    - 每一个处理的文件大小最大为 10KB;

    }

     

    从文件加载文本

    加载选择文件的内容作为子解压窗口文本。

     

    从文件加载自解压图片

    指定位图图像 (*.bmp) 文件用于创建或更新自解压压缩文件。

     

    - 从文件加载自解压文件图标

    使用目标 .ico 文件替换默认的自解压文件包含的图标。这个文件必须至少包含一个 32x32 图标,16 或 256 色(或全有)图标。推荐不需要包含16x16图标。大小超过 32x32 和颜色数超过 256 色的图标仅被基于 NT 的 Windows (NT, 2000, XP, 2003 等)支持,Windows 95, 98 和 Me 不支持。如果你要使用大的图标大小和压缩深度,则你不能使用任何第三方可执行文件压缩程序压缩自解压模块。

     

    ⑸,自解压选项: 许可

     

    - 许可窗口标题

    设置指定的文本作为许可窗口标题。

     

    -许可文本

    当运行自解压文件时显示指定的作为软件许可协议的文本。用户可以接受它并继续解压或者拒绝它并退出。

    许可文本可以包含 HTML 或纯文本格式。在以后的处理过程中,为了使字符串和对话框匹配,自解压模块将合并和重新格式化指定的字符串。所以如果你希望重新生成一个新的段落,你需要在它前面放一个空的字符串。

    你可以使用 HTML 标签来控制颜色,字体和显示的格式。 HTML 语法的描述可以在 The World Wide Web Consortium 站点找到。也可以使用网页编辑程序来产生 HTML 文本。

    相应的 自解压脚本 命令 - License

     

    License=<许可协议对话框标题 >

    {

    许可协议文本 1

    许可协议文本 2

    ...

    }

    当运行自解压文件时显示指定的作为软件许可协议文本。用户既可以接受它并继续解压或者拒绝它并退出。

    许可可以包含HTML 或者纯文本格式。在以后的处理过程中,为了使字符串和对话框匹配,自解压模块将合并和重新格式化指定的字符串。所以如果你希望重新产生一个新的段落,你需要在它前面放一个空的字符串。

    你可以使用 HTML 来控制颜色,字体和显示的格式。 HTML 语法的描述可以在 The World Wide Web Consortium 站点找到。也可以使用网页编辑程序来产生 HTML 文本。

    如果文本由数个字符串组成,自解压模块把‘ }’字符作为文本的结束标记,所以你在你的文本的字符串的首个位置不应该使用此字符。如果你需要在字符串的开头使用‘ }’字符,在它前面插入空格。

    例子:

    License=最终用户许可协议书

    {

    所有版权于 RAR 均属于作者所专有。

    此程序是共享软件,任何人在测试期限内均可以使用此软件。

    在测试期限过后,你“必须”注册。

     

    从文件加载文本

    加载选择文件的内容作为许可文本。

     

    ⑹,自解压选项: 模块

     

    允许选择 自解压 模块。 注意并不是所有的模块都支持高级自解压选项。它只被 图形界面 RAR 和 ZIP 模块( Default.SFX 和 Zip.SFX ) 支持,而不被 控制台 RAR 模块 ( WinCon.SFX )DOS RAR 自解压模块 ( Dos.SFX ) 支持。

     

    4,把压缩文件转换成自解压格式 

     

      此命令使用于当 WinRAR 是用在文件管理和压缩文件管理模式时。它将会转换压缩文件成为自解压。如果你在压缩文件内部,你不需要选择任何要运行该命令的文件,只要使用工具菜单、工具栏上的“自解压文件”按钮或键盘快捷键 Alt+X 运行“把压缩文件转换成自解压格式”命令,并从列表中选择需要的自解压模块。如果你在文件管理模式浏览未被压缩的文件,首先选择要搜索来转换的文件和文件夹。

    如果压缩已经是自解压文件,使用该命令可让你从压缩文件删除已存在的自解压压缩模块。这类例子时, WinRAR 不会改变原有的压缩文件,只创建内容相同,但没有自解压模块的新压缩文件。

      如果你选定了 Windows 图形界面自解压模块,会有些推荐的默认值,你也可以单击“高级自解压选项”按钮设置例如默认目标路径、标题和窗口文本等的自解压参数设置。读取高级自解压选项主题可获得更多关于它们的信息。 

     

     

     

     

     

    举例如下:

    选择安装程序(所有文件包括子文件夹),如

    Setup.exe
    Setup.msi
    dotnetfx/dotnetfx.exe
    ......

    右键,(WinRAR的)添加到压缩文件

    在常规里,选择 创建自解压格式压缩文件
    然后再注释 选项卡里, 添加如下内容

    引用

    Title=安装程序,版本 3.05

    License=最终用户许可协议书
    {
    所有版权于 RAR 均属于作者所专有。
    此程序是共享软件,任何人在测试期限内均可以使用此软件。
    在测试期限过后,你“必须”注册。
    }

    '预安装,可以执行一些清理工作
    'Presetup=setup.exe

    '安装程序
    Setup=setup.exe

    '设置这个后将看不到解压缩画面
    'Silent=2

    '指定自动解压到临时文件夹

    TempMode
    'TempMode=你希望继续安装 Calculator 3.05 吗? Calculator 安装程序



    之后,压缩就可以了,
    你可以双击那个EXE试试,就可以看到自动安装了
    楼主,可以把那个注释内容修改一下,然后保存成一个文件,留着备用

    另外,楼主也可以试着做成批处理文件
    rar.exe a 文件名 -m0 -o+ -sfx -z注释文件 -r
    把这个 语句 放到生成的文件下运行,就可以了自动生成了

     

     

     

    展开全文
  • VC++压缩解压zip文件(支持密码)

    千次阅读 2015-10-08 22:54:04
    只能压缩解压zip格式的,需要dll或者库文件,核心是HZIP,支持带密码压缩解压。 //压缩 CZipImplement compress; compress.Zip_PackFiles(m_strDirPath,strZipFilePath,"123456789");//只是个Demo就开线程去做了...
  • 文件压缩的原理 目前我们使用的计算机系统都是使用所谓的bytes单位来计量的,不过事实上,计算机最小的计量单位应该是bits才对。此外,我们知道1 byte = 8 bits。但是,如果今天我们只是记忆一个数字 1 ,电脑会如何...
  • 常见的图像文件格式 无损压缩

    万次阅读 2016-03-03 09:38:47
    常见的图像文件格式  一、BMP格式 BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格 式...这种格式的特点是 包含的图像信息较丰富,几乎进行压缩,但由此导致了它与生俱生来的缺 点--占
  • 之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加,最后测了一下压缩20M的文件竟然需要30秒的时间...
  • winRAR压缩压缩

    2012-11-09 08:52:16
    压缩及解压缩实用软夹件下列涉及到 RAR (及其 Windows 版本 - WinRAR) 压缩文件管理器 - 下面称为“软件” - 的协议被用于 win.rar GmbH - 下面称为 “许可方” - 和任何安装、访问或其它方式使用此软件的任何人 - ...
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。...所以,如果能对 Bitmap 进行压缩,对内存优化这块很大的帮助。我们首先需要知道 Bitmap 占用内存的计算方式: 图片长上的像素点 * ...
  • 之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前端所传图片的大小越来越大的时候,耗费的时间也在急剧增加, 最后测了一下压缩20M的文件竟然需要30秒的...
  • 查找与压缩 find查找 文件查找工具: 指定目录查找,默认为当前目录 格式: find 路径 选项 -iname 文件名,忽略大小写,可配合通配符 -link 链接数 -regex 模式,正则表达式 “.*.sh$” find /data/ -iname “*.sh...
  • 常见的Linux压缩文件扩展名 *.Z compress压缩的文件(已经被gzip替代) *.gz gzip程序压缩的文件 *.bz2 bzip2程序压缩的文件(比gzip效果好,但只能针对一个文件来压缩) *.tar tar程序打包的数据,没有...
  • Huffman压缩

    千次阅读 2014-04-06 18:17:12
    Huffman编码的Java实现,对数据的压缩和解压缩的过程做了分析和代码和代码实现,主要涉及到二叉树这种数据结构和一些数据处理方法
  • 算法#19--霍夫曼压缩(数据压缩

    千次阅读 2016-09-23 11:26:45
    我们现在来学习一种能够大幅压缩自然语言文件空间(以及许多其他类型文件)的数据压缩技术:霍夫曼压缩
  • 此项目主要是做一个三维运维机房,笔者刚接触three一个月,属于初学者。项目起始,加载模型用的FBX格式,直接引用的3D格式文件,后期发现在性能较差的笔记本上加载模型时,耗时太长(50M大小 3~5min),体验极差。...
  • 目录   1、常用网络管理命令 ...  9、文件权限管理   10、打包和压缩 1、常用网络管理命令 ifconfig:查看活动的网络接口信息 ifconfig etho up:启用etho接口 ifconfig etho down:禁用网卡 pi...
  • 初识压缩感知Compressive Sensing

    万次阅读 多人点赞 2012-07-07 11:38:14
    压缩感知是近年来极为热门的研究...本文针对陶哲轩和Emmanuel Candes上次到北京的讲座中对压缩感知的讲解进行讲解,让大家能够对这个新兴领域一个初步概念。 compressive sensing(CS) 又称 compressived se
  • 压缩算法概述

    2012-12-19 12:24:47
    一、 行程长度压缩  原理是将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替。例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。对于拥有大面积,相同颜色区域的图像,用RLE压缩方法非常...
  • 关于图像压缩实验

    千次阅读 2017-10-24 19:23:07
    一、背景介绍: 图像压缩是数据压缩技术在数字图像上的应用,目的是减少图像数据中的冗余信息...根据各种格式设计的不同,有损压缩都会代间损失——每次压缩与解压文件都会带来渐进的质量下降。在很多情况下,数据会
  • 几种压缩算法

    千次阅读 2018-01-24 16:37:37
    一、 行程长度压缩  原理是将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替。 例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。对于拥有大面积,相同颜色区域的图像, 用RLE压缩方法...
  • 数据压缩算法该如何选择?

    万次阅读 热门讨论 2021-05-05 13:01:33
    大数据领域常见的压缩格式 gzip,snappy,lzo,lz4,bzip2,zstd。 补充 为什么要进行数据压缩? 为了优化存储(减少存储空间)和充分利用网络带宽,通常采用压缩方法。大数据需要处理海量数据,此时数据压缩非常...
  • Linux常见的压缩命令

    千次阅读 2017-10-12 19:16:03
    Linux上常见的压缩命令就是gzip和bzip2,后者性能更好。compress不再流行。 tar功能仅是打包,把很多文件
  •   1、常用网络管理命令   2、网络配置   3、修改主机名称   4、主机映射   5、防火墙   6、系统启动级别   7、用户和用户组   8、为用户配置sudoer权限   9、文件权限管理   10、打包和压缩 ...
  • BMP/JPG/PNG/GIF/有损压缩和无损压缩【转载... BMP格式的图像,其优点是采用任何压缩,无损并且颜色准确,2色、16色、256色、真彩色各种选择;缺点就是文件占用的空间很大,支持文件压缩适用于 Web 页,...
  • 在进行图像处理相关应用之前第一步首先是能够读取这些图像文件,虽然很多开发工具支持库比如OpenCV等已经帮助节省了这些工作的麻烦,便利的同时也使得开发人员不再熟悉这些基本的图像格式。本文的作用就在于将这五种...
  • ROHC报头压缩

    千次阅读 2017-06-15 09:44:25
    因为能添加Word文档,自己讲Word文档中内容添加到博客太麻烦了,因为Word文档里面的东西很多,不好去添加,如果想要文档的可以加QQ:708947262直接找我要,或者自己留下言,留下邮箱也可以
  • 数据压缩算法—2无损压缩算法

    千次阅读 2018-12-12 20:55:43
    几个常见的编码算法 (一) 字典算法   字典算法是最为简单的...  字典列表:   00=Chinese   01=People   02=China   源文本:I am a Chinese people,I am from China 压缩后的编码为:I am a 00 0...
  • 图像压缩研究

    千次阅读 2014-08-11 15:10:43
    图像压缩介绍:
  • Huffman图像压缩

    万次阅读 多人点赞 2018-03-04 20:16:48
    Huffman图像压缩1、实现基于Huffman编码的图像压缩实现大体思路遵循上述的原理,关于比特位的处理,如果直接用位运算的话,编写起来较复杂。于是我改用0和1的字符串来逐位表示一个个比特。也就是说,编码过程中经过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 90,853
精华内容 36,341
关键字:

以下不属于压缩文件的有