- 浏览: 89588 次
- 性别:
- 来自: 上海
文章分类
最新评论
最近做文件压缩,最后在Window下压缩解压后都可以,可是在Windows下压缩后到Linux下用命令解压(tar zxvf tarname.tar.gz -C unFolderName)就出现问题了,文件名包括在单独的文件中(05\foldername\file.txt)。
后来发现是压缩单独的文件时出错了,
另外就是,压缩文件夹和压缩单独文件分开
后来发现是压缩单独的文件时出错了,
TarArchiveEntry tae = new TarArchiveEntry(file, finalFileName);这样写就出现了以上错误,改成以下一个参数的就可以了
TarArchiveEntry tae = new TarArchiveEntry(finalFileName);
另外就是,压缩文件夹和压缩单独文件分开
private void compressPerDayFolder(String currentDay) throws IOException, CompressorException { // prepare current need to compress day source file folder StringBuffer sourceFileDirPath = new StringBuffer(compressMonthDirPath) .append("/").append(currentDay); String sourceFileDirPathStr = sourceFileDirPath.toString().replace("/", File.separator); File sourceFileDir = new File(sourceFileDirPathStr); // prepare current Day directory for following use compressDayDirPath = sourceFileDirPathStr; compressDayDirPathLengthAddOne = sourceFileDirPathStr.length() + 1; // prepare current day finally compressed file StringBuffer targetFileName = new StringBuffer("snapshot_archive_") .append(compressYear).append(compressMonth).append(currentDay) .append(".tar.gz"); StringBuffer targetFilePath = new StringBuffer(compressMonthDirPath) .append(File.separator).append(targetFileName); File targetFile = new File(targetFilePath.toString()); if (sourceFileDir.isDirectory()) { File[] sourceFileArr = sourceFileDir.listFiles(); // compress all files in this day folder packAndCompressSnapshotXmlFiles(sourceFileArr, targetFile); } else { getLogger().error("This is not folder: " + sourceFileDirPathStr); } } private void packAndCompressSnapshotXmlFiles(File[] sourceFileArr, File targetFile) throws IOException, CompressorException { FileOutputStream fileOutputStream = null; CompressorOutputStream gzippedOut = null; TarArchiveOutputStream taos = null; try { fileOutputStream = FileUtils.openOutputStream(targetFile); gzippedOut = new CompressorStreamFactory().createCompressorOutputStream( CompressorStreamFactory.GZIP, fileOutputStream); taos = new TarArchiveOutputStream(gzippedOut); // iteration all files in this day folder to compress for (File hourDirFile : sourceFileArr) { compressSnapshotFolders(hourDirFile, taos); } } catch (IOException ioe) { throw ioe; } catch (CompressorException ce) { throw ce; } finally { if (taos != null) { try { taos.close(); } catch (IOException e) { } } if (gzippedOut != null) { try { gzippedOut.close(); } catch (IOException e) { } } } } private void compressSnapshotFolders(File file, TarArchiveOutputStream taos) throws IOException { if (file.isDirectory()) { parkAndCompressPerDir(file, taos); File[] subFileArr = file.listFiles(); for (File subFile : subFileArr) { compressSnapshotFolders(subFile, taos); } } else { parkAndCompressPerFile(file, taos); } } private void parkAndCompressPerFile(File file, TarArchiveOutputStream taos) throws IOException { // substring the file name path(forget all before the day folder, not // including the day and file separator) String fileAbstPath = file.getAbsolutePath(); String finalFileName = fileAbstPath.substring(fileAbstPath .indexOf(compressDayDirPath) + compressDayDirPathLengthAddOne); // this file will in this folders if the name string including // current operation system file separator TarArchiveEntry tae = new TarArchiveEntry(finalFileName); tae.setSize(file.length()); taos.putArchiveEntry(tae); taos.write(FileUtils.readFileToByteArray(file)); taos.closeArchiveEntry(); } private void parkAndCompressPerDir(File file, TarArchiveOutputStream taos) throws IOException { // substring the file name path(forget all before the day folder, not // including the day and file separator) String fileAbstPath = file.getAbsolutePath(); String finalFileName = fileAbstPath.substring(fileAbstPath .indexOf(compressDayDirPath) + compressDayDirPathLengthAddOne); // this file will in this folders if the name string including // current operation system file separator TarArchiveEntry tae = new TarArchiveEntry(finalFileName + File.separator); taos.putArchiveEntry(tae); taos.closeArchiveEntry(); }
发表评论
-
Tomcat Servlet request.getRemoteAddr()所得值为0:0:0:0:0:0:0:1
2013-11-08 11:53 1565环境: tomcat5.6 JSP UTF-8 IP协 ... -
追踪应用客户端IP
2013-08-22 09:53 730参考: http://www.knowsky.co ... -
java多线程发送URL请求
2013-07-19 11:32 1204import java.io.Buffered ... -
java启用多进程调用某个类(是class文件)
2013-07-19 11:29 653import java.io.BufferedInpu ... -
请慎用java的File#renameTo(File)方法
2013-07-03 12:14 558转自: http://xiaoych.iteye.com/bl ... -
java从tar.gz中抽取某个文件
2013-07-01 15:03 1324File tarGzFile = new File(a ... -
在不同jar文件中有两个同名类是加载的哪一个已经classload
2013-06-24 09:33 1469在Eclipse中加载第一个(通常是lib下面的顺序,但并非一 ... -
Java泛型的使用及List排序
2013-04-19 09:56 974import java.util.ArrayLis ... -
java删除一个文件夹,包括该文件夹下的所有文件夹及文件
2013-04-10 17:42 785要删除的文件必须存在且是一个文件夹,可以根据自己的需求,在调用 ... -
java压缩文件生成XXX.tar.gz压缩包
2013-04-09 13:42 2261生成XXX.tar.gz压缩文件有两种方式,可以先打包后压缩, ... -
java按照编码读写文件
2013-04-07 09:28 802package d20130406; impor ... -
java字符串中显示双引号
2013-04-19 09:58 1209转: http://www.cnblogs.com/zhish ... -
java写入txt文件
2013-04-19 09:59 639用另一个构造方法FileWriter fileWriter=n ... -
读取文件方法大全
2013-04-25 11:51 284转自: http://www.cnblogs.com/love ... -
Java性能监测
2013-04-15 13:20 570通过jdk自带工具监测: -
Java 32bit JVM Xmx 参数大小限制
2013-03-07 13:26 1423转自: http://stackoverflow.com/qu ... -
Java模拟HTTP发送请求
2013-04-15 13:17 757package com.hp.pn.service; ... -
tomcat配置文件
2013-03-01 13:51 635转自: http://www.cnblogs.com/smil ... -
PermGen space错误解决方法,java.lang.OutOfMemoryError
2013-03-01 11:07 797转自: http://www.cnblogs.com/xwdr ... -
<context-param>与<init-param>的区别与作用
2013-02-28 09:41 567转载: http://www.cnblogs.com/hzj- ...
相关推荐
1. **解压**:使用`tar -zxvf x11-ssh-askpass-1.2.4.1.tar.gz`命令解压缩文件。 2. **进入目录**:使用`cd x11-ssh-askpass-1.2.4.1`进入解压后的目录。 3. **配置**:运行`./configure`来检查系统环境并生成适合的...
这个“mariadb-5.5.68.tar.gz”文件是MariaDB 5.5.68版本的源码压缩包,采用gzip算法进行压缩,后缀为“.tar.gz”,意味着它是一个归档文件,可以包含多个文件和目录。SHA256哈希值“23FF96DB2215D3D2EB...
1. **解压**:首先,你需要使用`tar`命令来解压缩文件。在终端中输入`tar -zxvf tk8.5.8-src.tar.gz`,这将创建一个名为`tk8.5.8`的目录,包含所有源代码文件。 2. **进入源代码目录**:通过`cd tk8.5.8`命令进入...
".tar.gz"是Linux和Unix系统中常见的归档格式,用于打包多个文件或目录,而这里的.tar.gz文件则包含了解压后可以安装到Python环境中的源代码。 在Python中,我们通常使用pip工具来安装从PyPI下载的库。对于...
这种格式在Unix/Linux环境中常见,用于打包和压缩文件。 描述中的“cups 6.0 opensource print management source”进一步确认了这是CUPS 6.0的开放源代码,主要用于打印管理。CUPS通过提供一套标准化的接口和机制...
这种格式(.tar.gz)通常用于在 Linux 和类 Unix 系统中分发开源软件,因为它能有效地压缩文件。 **描述解析:**描述提到“libx11编译使用的libxext”,这表明 libxext 是作为 libx11 编译过程中的依赖库。libx11 ...
`.tar.gz`是一种常见的文件打包格式,由`tar`用于归档多个文件,然后用`gzip`进行压缩。在Linux环境下,可以使用以下命令来解压: ```bash tar -zxvf grads-2.0.2.oga.2-bundle-x86_64-unknown-linux-gnu.tar.gz ``...
标题“CHNTEL_Linux_UI.tar.gz”表明这是一个与Linux用户界面相关的压缩文件,采用了常见的归档格式“tar.gz”。这种格式是Linux和Unix系统中广泛使用的,它结合了tar(用于打包多个文件和目录)和gzip(用于压缩...
标题“winutils.tar.gz”指的是一个包含winutils工具的压缩文件,这个工具是专门为Windows环境设计的,主要用于支持Apache Spark的运行和调试。在Spark的工作流程中,winutils.exe扮演了重要的角色,尤其是在Hadoop...
2. **解压文件**:使用解压工具(如tar命令在Linux系统中)解压缩文件,例如:`tar -zxvf word2vec-2014-10-29.tar.gz`。 3. **进入源码目录**:解压后,进入源代码目录,例如:`cd word2vec-2014-10-29`。 4. **...
最后,".orig.tar.gz"是打包和压缩的格式,说明原始源代码被收集到一个tar档案中,并使用gzip进行压缩,这通常是Linux或类Unix系统中开源软件分发的标准做法。 描述中的"统信UOSdeb包"暗示了这个软件是为统信UOS...
1. `tar -zxvf inputproto-2.2.tar.gz`:解压缩文件。 2. `cd inputproto-2.2`:进入源码目录。 3. `./configure`:配置源码,检查系统环境并生成Makefile。 4. `make`:编译源码。 5. `sudo make install`:将编译...
在实际操作中,用户需要先解压缩文件,然后在对应的操作系统上运行相应的安装程序,如在Windows环境下运行".tar.gz"文件,而在Linux环境下则需运行相同版本的".tar.gz"文件。 标签中的"mysql"和"mycat"提示我们,...
在Windows操作系统中,通常我们使用的压缩和解压缩工具是如WinRAR或7-Zip这样的软件,但有时我们可能需要处理Linux环境下产生的`.tar`格式文件。`.tar`文件是一种非常常见的档案格式,它主要用于组合多个文件和目录...
总的来说,"xpm.tar.gz_fbida_xpm tar"涉及到的技术点包括:`.tar`和`.gz`文件格式,用于数据打包和压缩;`fbida`,一套终端下的图形工具,尤其适用于无GUI环境;以及XPM图像格式,适合在文本界面展示图像。理解这些...
标题中的"xf86-video-ati-6.13.2.tar.gz"是一个开源图形驱动程序的源代码压缩包,用于支持AMD/ATI显卡在X Window System下的图形渲染。这个包是X.org服务器的一个扩展,提供了对ATI显示芯片组的支持。接下来,我们将...
4. **兼容性**:不仅支持X Window System,还支持GTK+、Qt等多种图形库,能在各种桌面环境如Gnome、KDE下良好工作。 5. **插件系统**:允许用户和开发者编写自定义插件以扩展功能。 标签“输入法”表明了SCIM的核心...
My_SQL第伍版 samp_db数据库tar.gz文件,方便大家学习下载在linux环境下学习使用,这个压缩文件是tar.gz格式,我也提供了一个zip格式(window环境下学习),自行选择哦,如有侵权,将及时删除!
"qt-x11-2.2.0.tar.gz" 是一个针对X11窗口系统的QT库版本2.2.0的源代码压缩包,通常以.tar.gz格式发布,这是一种在Linux和Unix类操作系统中常见的文件打包和压缩方式。 1. **QT库**:QT是由Trolltech(现为The Qt ...
- 解压文件:首先,使用`tar -zxvf mysqlcc-0.9.4-linux-glibc23.tar.gz`命令解压缩文件。 - 查看依赖:检查系统是否已安装所有必要的依赖,比如X Window System、libmysqlclient等。 - 安装依赖:如果缺少依赖,...