我有一个zip文件中的编码base64字符串。我尝试解码字符串并转换为zip文件。我有这段代码:
Path rootDirectory = FileSystems.getDefault().getPath("/home/myName/driversFolder");
Path tempDirectory = Files.createTempDirectory(rootDirectory, "");
String dirPath = tempDirectory.toString();
String zipfile = "rbdkjsd4934234234adadds==" //base64 string test
FileOutputStream fos = new FileOutputStream(dirPath + "/zipf.zip");
fos.write(Base64.getDecoder().decode(tt));
fos.close();
如果我去文件夹,我可以看到一个带有原始内容的zip文件(zipf.zip
),显然它是一个拉链......但事实并非如此。我正在使用linux,如果我在命令行中尝试unzip zipf.zip
,我会收到错误:
找不到中心目录签名。这个文件是 不是zipfile,或者它构成了多部分存档的一个磁盘。 在后一种情况下,中心目录和zipfile注释将是 在此存档的最后一个磁盘上找到。
显然它是一个zip文件,因为文件的名称是.zip,但不是zip格式。那么解决这个问题的方法是什么?