求一个留liunx命令:加密压缩文件,这个文件可以在win下双击输入密码打开的,另外还有一个问题,
/**
* 使用指定密码将给定文件或文件夹压缩成指定的输出ZIP文件
* @param srcFile 需要压缩的文件或文件夹
* @param destPath 输出路径
* @param passwd 压缩文件使用的密码
/
public static void zip(String srcFile,String destPath,String passwd) {
AESEncrypter encrypter = new AESEncrypterBC();
AesZipFileEncrypter zipFileEncrypter = null;
try {
zipFileEncrypter = new AesZipFileEncrypter(destPath, encrypter);
/*
* 此方法是修改源码后添加,用以支持中文文件名
/
zipFileEncrypter.setEncoding("utf8");
File sFile = new File(srcFile);
/*
* AesZipFileEncrypter提供了重载的添加Entry的方法,其中:
* add(File f, String passwd)
* 方法是将文件直接添加进压缩文件
*
* add(File f, String pathForEntry, String passwd)
* 方法是按指定路径将文件添加进压缩文件
* pathForEntry - to be used for addition of the file (path within zip file)
*/
doZip(sFile, zipFileEncrypter, "", passwd);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
zipFileEncrypter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个java压缩的不支持中文的问题,因为是用maven不能改源码,有办法支持中文吗
windows下直接调用unrar就可以了,它是winrar带的一个解压缩dll。帮助文档有用法,或者google下也有。支持加密的zip。
linux压缩格式如下:*
tar命令
解包:tar zxvf FileName.tar
打包:tar czvf FileName.tar DirName
gz命令
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
压缩多个文件:tar zcvf FileName.tar.gz DirName1 DirName2 DirName3 ...
bz2命令
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
bz命令
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
Z命令
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
zip命令
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
linux下的压缩文件,windows能打开的很少,如果是正版windows打开的文件可能多一些。linux下的文件尽量还是用linux命令去解压,
如果不能解压可能是文件传送过程已经损坏,让重新传一个就行
jdk1.8及以上的 版本应该就可以支持中文文件名了