什么是好的商业tar stream lib for c# and .net?
我们目前正在使用Sharpziplib,但是由于它使用GPL,因此我们需要用商业Lib替换它. 解决方案 请参阅我在主帖子中对#ziplib的评论...但是如果您确实需要商业产品(不是开放式产品), ip*有效! zip .net 可能适合该法案.它确实具有根据其他解决方案 您是否看过 dotnetzip ? 它不在GPL下,而是Microsoft公共许可证(MS-PL). 其他解决方案 仅供参考.有一个使用BSD许可库进行焦油阅读/写作的选项. GZIP压缩和减压您可以使用Microsoft .NET 2.0 的Build-In-In-In-In-in
14 2024-04-25
编程技术问答社区
试图提取内容时悬挂的阻滞性
我正在尝试创建一个焦油档案,然后使用这是我的代码 public void CreateTarAndExtract() { // create tar file string tarFile = "path_to_desktop\\tartest.tar"; string inputFolder = "path_to_desktop\\testfolder"; using (var output = File.OpenWrite(tarFile)) { using (var archive = TarArchive.CreateOutputTarArchive(output, Encoding.UTF8)) { var trimLength = i
12 2024-04-24
编程技术问答社区
如何在 Solaris 中运行 tar 时排除快照
我正在尝试使用'/home/store/'目录内容的焦油. tar cvf store.tar /home/store/ 在这样做的同时,我可以看到 .snapshot 目录也被包括在内.我的理解是快照是一种备份.我可以跳过吗?如果可能的话,如何?尝试使用以下命令从/home/store/ 排除测试目录 tar cvfX store.tar
24 2024-04-23
编程技术问答社区
在 tar/zip 中添加最后 n 行文件
我需要定期发送可以大大生长的日志文件集合,因此我只想发送每个文件的最后一个 n 行. 例如: /usr/local/data_store1/file.txt (500 lines) /usr/local/data_store2/file.txt (800 lines) 给出了一个文件,上面有一个名为files.txt的需要的文件列表,我想创建一个档案(tar或zip),其中每个文件的最后100行. 我可以通过使用尾部文件创建单独的目录结构来做到这一点,但是当可能有一些管道魔术可能会碰巧实现它时,这似乎是浪费资源.还必须保留完整的目录结构,因为文件可以在不同目录中具有相同的名称. 如果可能/p> 解决方案 您可以尝试 tail -n 10 your_file.txt | while read line; do zip /tmp/a.zip $line; done 其中a.zip是zip文件,10是n或 tail -n 10 your_file.t
22 2024-04-22
编程技术问答社区
用SharpZipLib解压缩.tar.gz
我试图在一个拉链中解开tar.gz,但我不能 它显示了一个错误"找不到中央目录",我不知道该怎么办. 首先,我在临时文件夹上解压缩zip,然后在该文件夹上搜索.tar.gz,然后尝试解开拉链但使用该错误崩溃,但是我可以使用winrar应用程序打开它,.tar.gz有一些文件夹和内部的一些文件. 这是我的代码: var trash = Path.Combine(_temporalPath, "Trash"); try { var zip = new FastZip(); Directory.CreateDirectory(trash); zip.ExtractZip(_origin, trash, ""); var gzip = Directory.GetFiles(trash, "*.tar.gz")[0]; zi
12 2024-04-20
编程技术问答社区
如何在C#中实现Lua容器(虚拟文件系统)模块加载器
听起来有些恐怖吗? 一些背景信息,我想加载一个tar存档,该档案包含一些LUA模块使用Luainterface进入我的C#应用​​程序.最简单的方法是将这些文件提取到临时文件夹,修改LUA模块搜索路径并照常读取它们.但是我不想将这些脚本放在文件系统上的某个位置. 所以我认为应该有可能用 #ziplib 我知道有一个大量的LUA实现了焦油之类的东西.但是#zlib已经是项目的一部分. 成功地将文件作为字符串(流)从档案中输出后,我应该能够通过luainterface将它们传递到c#中的lua.dostring(...)中. 但是,如果模块具有这样的行,则简单地通过dostring或dofile加载模块是不起作用的:"模块(...,package.seeall)"有一个错误的报表列,例如传递参数1 nil,但字符串预期. 另一个问题是模块可能取决于也位于焦油存档中的其他模块. 一种可能的解决方案应该是按照在这里定义自定义加载程序. 我的想法是用#zipl
14 2024-04-20
编程技术问答社区
使用.NET创建tar.gz
我是.net的新手.是否可以使用.NET环境创建TAR.GZ?如果是,如何? 解决方案 我想你也可以使用 http://sevenziplib.codeplex.com/ 其他解决方案 看看Sharpziplib /a> 其他解决方案 是的,这是可能的. 使用合适的库来创建焦油档案,例如 http://code.google. com/p/tar-cs/. 然后使用 gzipstream class. 当然,您应该熟悉流.
14 2024-04-15
编程技术问答社区
使用C#解压tar文件
我正在搜索一种将嵌入式资源添加到我的解决方案中的方法.这些资源将是其中包含很多文件的文件夹.在用户需求时,他们需要解压缩. 我正在搜索一种方式,在无需涉及第三方库的情况下将此类文件夹存储在可执行文件中(看起来很愚蠢,但这是任务). 我发现,我可以使用标准库进行gzip并解开它们.但是GZIP仅处理单个文件.在这种情况下,焦油应该进入现场.但是我还没有发现标准类之间的焦油实现. 也许可能会用裸露的C#解压缩焦油? 解决方案 由于不允许您使用外部库,因此您也不限于tar文件的特定格式.实际上,他们甚至不需要所有这些都在同一文件中. 您可以在c#中编写自己的类似焦油的实用程序,该实用程序是沿着目录树走的C#,并生成两个文件:一个由串行词典映射System.IO.Path实例组成的"标题"文件,包含连接到一个巨斑点的单个文件的内容的大文件.这不是一项琐碎的任务,但也不是过于复杂的. 其他解决方案 在寻找相同问题的快速答案时,我遇到了这个线程,并且对当前的答
16 2024-04-12
编程技术问答社区
用LibTar提取文件
当我尝试使用libtar提取文件时,我有一个小问题. 这是我的代码: int htlp_decompress_decompress(char * filename) { TAR * tar_file; char rootdir[200]; strcpy(rootdir, "/var/cache/htpackage/"); if (tar_open(&tar_file, filename, NULL, O_RDONLY, 0, TAR_GNU) == -1) { fprintf(stderr, "tar_open(): %s\n", strerror(errno)); return -1; } if (tar_extract_all(tar_file, rootdir) != 0) { fprintf(stderr, "tar_extract_all(): %s\n", st
6 2024-04-10
编程技术问答社区
tarball中的PaxHeaders
我正在做一个tar,就像在C中一样,我遇到了问题. 我只想存档和不合理的文件和纸,所以我操作此命令:tar -cvf NAME.tar FILE1 [FILE2...] 现在,我正在尝试获取此存档的标题POSIX: struct posix_header { /* byte offset */ char name[100]; /* 0 */ char mode[8]; /* 100 */ char uid[8]; /* 108 */ char gid[8]; /* 116 */ char size[12]; /* 124 */ char mtime[12]; /* 136 */ char chksum[8
12 2024-04-07
编程技术问答社区
如何在内存中解压缩文件(C语言编程)?
让我解释一下我要认识的是: 我有一个加密的焦油文件.我可以在内存中解密它,但是显然我不能将解密的数据写回硬盘作为真实文件.解密的数据在内存中的char*缓冲区结构;如何在内存中解开它? 我找不到libtar库的答案. 我还试图用execlp("tar", "tar", "-xvO", (void*)0)将其解开. 但这没有我想的. 有人可以给我最佳解决方案吗?谢谢! 解决方案 我举了一个示例,如何从内存焦油中读取文件内容. is_file_in_tar()函数返回length和name d文件的start start,如果将其存储在tar中: #include #include #include #include struct tar { char name[100]; char _unused[24]; char size[12]; cha
14 2024-04-06
编程技术问答社区
在C语言中使用libtar库
我正在尝试使用c制作焦油文件.原因是我无法使用 system("tar -cvf xxxx.tar xxxx"); 我的代码是: #include #include #include int main(void) { TAR *pTar; char *tarFilename = "file.tar"; char *srcDir = "directory"; char *extractTo = "."; tar_open(&pTar, tarFilename, NULL, O_WRONLY | O_CREAT, 0644, TAR_GNU); tar_append_tree(pTar, srcDir, extractTo); tar_close(pTar); return (0
20 2024-04-06
编程技术问答社区
如何创建一个省略了内容的时间戳的tar文件?
有没有办法创建.tar文件,该文件省略了其文件/目录的atime/ctime/mtime值? 我们为什么要这样做? 我们在构建过程中有一个步骤,该过程生成了包装到Tarfile的工件目录.我们希望该构建步骤是基于掌握的 - 给定输入相同,它每次都会产生相同的文件/输出. . 理想情况下,我们也希望在整个清洁构建中成为 bitwise iDempotent的步骤,以便我们可以使用连续构建的哈希来检查什么都没有改变.但是,由于tar文件包含每个条目的时间戳(Atime/ctime/mtime),因此该构建步骤创建的焦点文件永远不会与以前的运行相同,即使Archive 中的每个文件的内容都是 em>位相同. 有没有一种方法来生成省略其条目时间戳的tarfile,以便生成存档的步骤可以是 是偏心的吗? (我们想利用tar保留的其他文件元数据,例如文件模式位和符号链接.) 解决方案 拥有一个真正的势力焦油,mtime是一个不错的步骤,但还不够. 您还需要设置排序订
18 2024-04-04
编程技术问答社区
使用Python从一个S3桶提取tar文件到另一个S3桶
我们需要将ZIP和TAR文件的内容提取到另一个S3存储桶中. 我们有代码来提取工作的zip文件. 我们需要使用meta.client.upload_fileobj或meta.client.copy. def unzip_file(source_bucketname, filename, target_bucketname): s3_resource = boto3.resource('s3') s3_client = boto3.client('s3') target_directory = source_file_name + '/' zip_obj = s3_resource.Object( bucket_name=source_bucketname, key=source_file_name) buffer = BytesIO(zip_obj.get()["Body"].read()) with zipfi
18 2024-04-03
编程技术问答社区
如何在AWS S3中列出tar里面的文件而不下载它?
四处寻找想法时,我找到了我认为这是一个非常聪明的解决方案.但它依赖于具有中central目录 - tar filectory - . 我以为我可以遵循相同的一般原则,并将S3文件暴露于 tarfile 通过fileobj参数: import boto3 import io import tarfile class S3File(io.BytesIO): def __init__(self, bucket_name, key_name, s3client): super().__init__() self.bucket_name = bucket_name self.key_name = key_name self.s3client = s3client self.offset = 0 def close(self): return def read(s
22 2024-04-03
编程技术问答社区
在Windows中解压缩tar.gz
我想使用Windows批处理脚本中的单个命令来解开filename.tar.gz到文件名 zip中的所有文件都应在文件名文件夹中 我正在尝试在窗户上做.我没有正确的输出. 任何人都可以建议一个想法 解决方案 7邮政编码可以做到这一点: http://www.7-zip.org/phin一个> 它具有记录的命令行.我每天通过脚本使用它. plus:它是免费的,具有32和64位版本. 其他解决方案 Windows命令行现在支持Windows 10 Insider build 17063的TAR.您可以尝试在CMD或PowerShell中运行以下命令以查看它是否有效: tar -xzvf your-file-name.tar.gz 其他解决方案 Windows 10命令行支持TAR命令 将tar命令写为Linux终端的一般. tar -zxvf tar-filename.tar.gz --directory destination-folde
28 2024-03-29
编程技术问答社区
使用bash脚本提取文件
我创建了一个将提取所有*.tar.gz文件的脚本.该文件被解压缩五次.tar.gz文件,但问题是仅提取第一个 *.tar.gz文件. for file in *.tar.gz; do gunzip -c "$file" | tar xf - done rm -vf "$file" 我该怎么办?答案非常感谢. 解决方案 如果您的问题是Tar.gz文件包含另一个tar.gz文件,也应提取,则需要另一种循环.仅在循环启动时评估for循环顶部的通配符,因此它不包括从tar.gz 中提取的任何内容 您可以尝试 之类的东西 while true; do for f in *.tar.gz; do case $f in '*.tar.gz') exit 0;; esac tar zxf "$f" rm -v "$f" done done case取决于以下事实:(默认情况下)当不匹配通配符时,
14 2024-03-29
编程技术问答社区
tar over ssh: 设置目标文件名和位置,并覆盖现有的
解释这个问题的最简单方法是显示以下我在bash脚本中拥有的代码. tar -cJf - ./my_folder | ssh user@example 'tar -xJf - && rm -r ./path-to-my_folder/my_folder && mv ./my_folder ./path-to-my_folder' 我不完全了解它的工作原理. ('-'在这种情况下是什么意思?)但是这就是它的作用: 在内存中创建一个压缩的焦油存档,管道以某种方式将焦油数据推到SSH tar存档出现在user s根文件夹中,提取 ssh命令继续执行' ... '之间的内容,使用rm删除服务器端的旧文件夹,并通过将提取的文件夹从用户的根目录中移动 很明显,这是做事的漫长方法.如果将焦油存档提取到正确的位置,这样就不会是rm和mv命令,那将是更好的.可以做到吗? 注意:i 不能使用 rsync . 解决方案 尝试以下方法: tar -cJf -
18 2024-03-29
编程技术问答社区
Bash:从变量中扩展参数。如何?
我想扩展焦油参数--exclude thru变量如下: set -x verbose EXC=AAA,BBB echo --exclude={$EXC} > /dev/null 输出: echo '--exclude={AAA,BBB}' ,但我希望: echo --exclude=AAA --exclude=BBB 我尝试了不同的调用,但什么都没有. 怎么了? 解决方案 您需要使用eval替换变量后解析行. eval "echo --exclude={$EXC}"
12 2024-03-29
编程技术问答社区