我在我的工具中使用 (Java)ArchiverFactory/org.rauschig.jarchivelib.Archiver https://rauschig.org/jarchivelib/examples.html在 windows 下创建 tar.gz 存档,在 linux 下必须解压缩,但是 filetree 有问题。
例如,我想压缩文件夹 test/其中包含测试/a.txt测试/b.txt
Archiver archiver = ArchiverFactory.createArchiver(ArchiveFormat.TAR,CompressionType.GZIP);
archiver.create("archive", new File(path/to/dir/test), new File(output/path));
所以我有 archive.tar.gz,它包含(在 Windows 上)一个目录 test,以及该目录中的 2 个文件(a.txt 和 b.txt):
/test/a.txt
/test/b.txt
但是在 linux 上解压缩相同的存档后 (tar -xvf archive.tar.gz) 我有一个空目录 (test) 和 2 个文件,它们的目录和文件名称带有斜杠“/”:
/test/
/test\a.txt
/test\b.txt
我在 Windows 下的所有路径中都使用“/”,也尝试过“\\”但没有成功。在 Linux 上解包看起来像这样:
ubuntu@ubuntu:~/Desktop/temp$ tar -xvf archive.tar.gz
test/
test\\a.txt
test\\b.txt
这个斜杠/反斜杠有什么问题?
好的,这是库问题...我使用的是 0.7.1,但在最近更新的 0.8.0 中这个问题已得到解决;)所以,请始终使用最新版本!
我是一名优秀的程序员,十分优秀!