GVKun编程网logo

没有__MACOSX文件夹的Mac zip压缩?(macos压缩文件自带_macos_文件夹)

16

本文将介绍没有__MACOSX文件夹的Maczip压缩?的详细情况,特别是关于macos压缩文件自带_macos_文件夹的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,

本文将介绍没有__MACOSX文件夹的Mac zip压缩?的详细情况,特别是关于macos压缩文件自带_macos_文件夹的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Apache compress单文件、多文件zip压缩/解压、c# – 有没有办法用另一个库解压缩DynaZip Max文件? F.E. DotNetZip、Centos-zip压缩-文件或目录-zip unzip、delphi – 是否可以恢复7zip压缩?的知识。

本文目录一览:

没有__MACOSX文件夹的Mac zip压缩?(macos压缩文件自带_macos_文件夹)

没有__MACOSX文件夹的Mac zip压缩?(macos压缩文件自带_macos_文件夹)

当我在 Mac OSX 中使用内置 zip 压缩器压缩文件时,它会导致在提取的 zip 中创建一个名为“__MACOSX”的额外文件夹。

我可以调整我的设置以防止创建此文件夹还是需要购买第三方压缩工具?

更新 :我刚刚找到了一个 OSX 的免费软件应用程序,可以解决我的问题:“
YemuZip ”

更新 2 :YemuZip 不再是免费软件。

答案1

小编典典

当我遇到这个问题时,我已经从命令行完成了:

zip file.zip uncompressed

编辑
,经过多次否决:我之前使用过这个选项,我不知道我在哪里学到的,所以我不能给你更好的解释。克里回答是正确的,但我不会删除我的。正如一条评论所说,它对
OP 的要求更准确,因为它在没有这些文件的情况下进行压缩,而不是从压缩文件中删除它们。我也觉得更容易记住。

事后可以通过以下方式修复zip -d filename.zip __MACOSX/\*

并且,还要删除.DS_Store文件:zip -d filename.zip \*/.DS_Store

还要删除 .DS_Store 文件:zip -d filename.zip \*/.DS_Store

Apache compress单文件、多文件zip压缩/解压

Apache compress单文件、多文件zip压缩/解压

1.添加maven依赖

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-compress</artifactId>
    <version>1.14</version>
</dependency>

 

2.开始测试

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream;
import org.apache.commons.io.IOUtils;

public class ZipConpress {

    static int bufferSize = 8192;//单位bytes

    /**
     * 用于单文件压缩
     */
    public static void doCompress(File srcFile, File destFile) throws IOException {
        ZipArchiveOutputStream out = null;
        InputStream is = null;
        try {
            is = new BufferedInputStream(new FileInputStream(srcFile), bufferSize);
            out = new ZipArchiveOutputStream(new BufferedOutputStream(new FileOutputStream(destFile), bufferSize));
            ZipArchiveEntry entry = new ZipArchiveEntry(srcFile.getName());
            entry.setSize(srcFile.length());
            out.putArchiveEntry(entry);
            IOUtils.copy(is, out);
            out.closeArchiveEntry();
        } finally {
            IOUtils.closeQuietly(is);
            IOUtils.closeQuietly(out);
        }
    }

    /** 
     * 用于多文件压缩 
     */
    public static void doCompressFiles(List<File> srcFiles, File destFile) throws IOException {
        ZipArchiveOutputStream out = null;
        InputStream is = null;
        try {

            out = new ZipArchiveOutputStream(new BufferedOutputStream(new FileOutputStream(destFile), bufferSize));

            for(File srcFile:srcFiles){
                is = new BufferedInputStream(new FileInputStream(srcFile), bufferSize);
                ZipArchiveEntry entry = new ZipArchiveEntry(srcFile.getName());
                entry.setSize(srcFile.length());
                out.putArchiveEntry(entry);
                IOUtils.copy(is, out);
            }
            out.closeArchiveEntry();
        } finally {
            IOUtils.closeQuietly(is);
            IOUtils.closeQuietly(out);
        }
    }

    public static void doDecompress(File srcFile, File destDir) throws IOException {
        ZipArchiveInputStream is = null;
        try {
            is = new ZipArchiveInputStream(new BufferedInputStream(new FileInputStream(srcFile), bufferSize));
            ZipArchiveEntry entry = null;
            while ((entry = is.getNextZipEntry()) != null) {
                if (entry.isDirectory()) {
                    File directory = new File(destDir, entry.getName());
                    directory.mkdirs();
                } else {
                    OutputStream os = null;
                    try {
                        os = new BufferedOutputStream(
                                new FileOutputStream(new File(destDir, entry.getName())), bufferSize);
                        IOUtils.copy(is, os);
                    } finally {
                        IOUtils.closeQuietly(os);
                    }
                }
            }
        } finally {
            IOUtils.closeQuietly(is);
        }
    }

    public static void main(String[] args) {
        try {
         //ZipConpress.doCompress(new File("/pathto/abc.txt"),new File("/pathto/abc-test.zip"));

            List<File> files=new ArrayList<File>();
            files.add(new File("/pathto/abc.txt"));
            files.add(new File("/pathto/xyz.txt"));


            ZipConpress.doCompressFiles(files,new File("/pathto/abc-test.zip"));


//            File doDecompressDir = new File("/pathto/abc-test1723");
//            if (!doDecompressDir.exists()) {
//                doDecompressDir.mkdirs();
//            }
//            ZipConpress.doDecompress(new File("/pathto/abc-test.zip"), doDecompressDir
//            );

        } catch (IOException e) {

            e.printStackTrace();
        }


    }
}

c# – 有没有办法用另一个库解压缩DynaZip Max文件? F.E. DotNetZip

c# – 有没有办法用另一个库解压缩DynaZip Max文件? F.E. DotNetZip

我有一个数据库,我们使用以下代码存储使用DynaZip Max Secure压缩的pdf文件:
MemoryStream msIN = new System.IO.MemoryStream();   //Input MemoryStream
MemoryStream msZip = new System.IO.MemoryStream();  //Compressed MemoryStream
BinaryReader objBinaryReader;
BinaryWriter objBinaryWriter;


public MemoryStream Compressstream(byte[] vbuf)
{
    System.IO.BinaryWriter bw = new System.IO.BinaryWriter(msIN);
    bw.Write(vbuf);
    CDZipSNET dz1 = new CDZipSNET();
    dz1.ZipMemToMemCallback += new CDZipSNET.OnZipMemToMemCallback(this.ZipMemToMemCallback_event);
    dz1.ActionDZ = CDZipSNET.DZACTION.ZIP_MEMTOMEM;
    return msZip;
}

这是ZipMemToMemCallback_event代码:

public void ZipMemToMemCallback_event(CDZipSNET.MEMTOMEMACTION lAction,ref byte[] lpMemBuf,ref uint pdwSize,uint dwTotalReadL,uint dwTotalReadH,uint dwTotalWrittenL,uint dwTotalWrittenH,ref CDZipSNET.MEMTOMEMRESPONSE plRet)
{
    int bytesToRead;

    switch(lAction)
    {
        case CDZipSNET.MEMTOMEMACTION.MEM_READ_DATA:
            if((dwTotalReadL == 0) && (dwTotalReadH == 0))
            {
                msIN.Seek(0,System.IO.SeekOrigin.Begin);
                objBinaryReader = new System.IO.BinaryReader(msIN);
            }
            try
            {
                bytesToRead = (int)(objBinaryReader.BaseStream.Length - dwTotalReadL);
                if(bytesToRead > pdwSize)
                {
                    bytesToRead = (int)pdwSize;
                    plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_CONTINUE;
                }
                else
                { 
                    plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_DONE; 
                }
                pdwSize = (uint)bytesToRead;
                if(bytesToRead > 0)
                { 
                    objBinaryReader.Read(lpMemBuf,bytesToRead); 
                }
            }
            catch 
            { 
                plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_ERROR; 
            }
            break;

        case CDZipSNET.MEMTOMEMACTION.MEM_WRITE_DATA:
            if((dwTotalWrittenL == 0) && (dwTotalWrittenH == 0))
            { 
                objBinaryWriter = new System.IO.BinaryWriter(msZip); 
            }
            try
            {
                objBinaryWriter.Write(lpMemBuf,(int)pdwSize);
                plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_CONTINUE;
            }
            catch (System.Exception)
            { 
                plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_ERROR; 
            }
            break;

        default: plRet = CDZipSNET.MEMTOMEMRESPONSE.MEM_ERROR;
            break;
    }
}

我将提供任何其他必要的东西来解决这个谜题,我尝试过常规Zip解压缩,Zlib,Gzip无济于事.我将不胜感激任何帮助.谢谢.

编辑:问题是DinaZip是一个固定的,已停产的库,没有发布它的公司的帮助或故障排除,我已经委托解压缩一堆以前使用这个库压缩的文件(使用代码avobe)和我不再有可用于解压缩的库,我想知道是否有人知道任何解压缩这些文件的方法可能使用另一个库或方法.

解决方法

此代码来自 https://zlibnet.codeplex.com,它可以解压缩未加密的DynaZip流:
public static class DynazipCompressor
{
    const int DZ_DEFLATE_POS = 46;

    public static bool IsDynazip(byte[] source)
    {
        return source.Length >= 4 && BitConverter.ToInt32(source,0) == 0x02014b50;
    }

    public static byte[] DeCompress(byte[] source)
    {
        if (!IsDynazip(source))
            throw new InvalidDataException("not dynazip header");
        using (MemoryStream srcStream = new MemoryStream(source,DZ_DEFLATE_POS,source.Length - DZ_DEFLATE_POS))
        using (MemoryStream dstStream = DeCompress(srcStream))
            return dstStream.ToArray();
    }

    private static MemoryStream DeCompress(Stream source)
    {
        MemoryStream dest = new MemoryStream();
        DeCompress(source,dest);
        dest.Position = 0;
        return dest;
    }

    private static void DeCompress(Stream source,Stream dest)
    {
        using (DeflateStream zsSource = new DeflateStream(source,CompressionMode.Decompress,true))
        {
            zsSource.copyTo(dest);
        }
    }
}

DynaZip流只是一个带有PKZIP头的DeflateStream,因此这段代码只是跳过标题.

Centos-zip压缩-文件或目录-zip unzip

Centos-zip压缩-文件或目录-zip unzip

zip uzip

  将一般文件或者目录进行压缩或者解压,默认以 .zip为后缀名

 

zip 相关选项

  -r      递归压缩目录

  -d      从压缩包中删除指定文件

  -i       压缩指定文件列表文件

  -x      压缩排除指定文件列表中文件

  -u      更新文件到压缩包

  -m        文件加入到压缩包,删除原文件

  - 级别     1~9表示文件压缩级别,越大压缩比越高

  -T      检查压缩包中文件是否正确

  -F      尝试修复压缩包中损坏文件

 

unzip 相关选项

  -x      解压时排除文件列表中文件

  -v      查看压缩文件详细信息,文件大小、文件名、压缩比率,不解压

  -n      解压时不覆盖存在文件

  -o      解压是覆盖原文件

  -d      解压到指定路径

  -t      检查压缩包是否损坏

delphi – 是否可以恢复7zip压缩?

delphi – 是否可以恢复7zip压缩?

我的应用程序定期上传大文件.无论大小如何,所有文件在上传到服务器之前都会被压缩.

此项目要求的一部分是在崩溃/电源故障后恢复良好,所以现在压缩是这样完成的:

> large-file.bin切成N片
>压缩每个切片&上传它

在崩溃的情况下,我从最后一片中拾取.

为了优化上传速度,我目前正在寻找发送整个文件(如果失败则恢复上传)而不是逐个发送切片,所以我正在考虑压缩整个文件而不是压缩每个切片.

我目前正在使用7z.dll.我想知道在电源故障的情况下是否有可能告诉7z恢复压缩.

我知道我总能实现自己的压缩程序并实现这样的功能,但在走这条路之前我想知道是否可以在7z(已经具有出色的压缩比)中做到这一点

解决方法

据我所知,没有压缩算法支持.您可能必须每次从头开始重新压缩源文件,丢弃任何输出字节,直到达到所需的恢复位置,然后您可以从该点开始发送剩余的输出字节.

关于没有__MACOSX文件夹的Mac zip压缩?macos压缩文件自带_macos_文件夹的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Apache compress单文件、多文件zip压缩/解压、c# – 有没有办法用另一个库解压缩DynaZip Max文件? F.E. DotNetZip、Centos-zip压缩-文件或目录-zip unzip、delphi – 是否可以恢复7zip压缩?的相关知识,请在本站寻找。

本文标签: