java - 尝试使用 JTar 解压缩时,Mkdir 不起作用
问题描述
我正在尝试实现一个解压缩文件的函数。下面是我使用 JTar 编写的代码
private void untar(String tarFile, String destFolder) throws IOException {
TarInputStream tis = new TarInputStream(new BufferedInputStream(new FileInputStream(tarFile)));
TarEntry entry;
while (( entry = tis.getNextEntry() ) != null) {
System.out.println( "Extracting: " + entry.getName() );
int count;
byte data[] = new byte[2048];
if (entry.isDirectory()) {
new File( destFolder + "/" + entry.getName() ).mkdirs();
continue;
} else {
int di = entry.getName().lastIndexOf( '/' );
System.out.println("File"+di);
if (di != -1) {
File f = new File( destFolder + "/" + entry.getName().substring( 0, di ) );
if(f.mkdirs())
System.out.println(f.isDirectory());
}
}
FileOutputStream fos = new FileOutputStream( destFolder + "/" + entry.getName() );
BufferedOutputStream dest = new BufferedOutputStream( fos );
while (( count = tis.read( data ) ) != -1) {
dest.write( data, 0, count );
}
dest.flush();
dest.close();
}
tis.close();
}
if
当我点击 mkdirs() 部分并尝试创建一个目录时,它没有这样做,并且在语句之后我在控制台上看不到任何输出。
这可能是 FileOutputStream 的后续代码显示 IOexception 声明不是目录的原因。
我在任何地方都找不到解决此问题的方法。
解决方案
推荐阅读
- c# - 从 URL 获取 HTML - StreamReader 使用另一种字符编码?
- git - Git rebase 并在 pre-push 钩子期间推送
- swift - 致命错误:只能将 BidirectionalCollections 推进负数
- firebase - 在异步函数中返回值 - Flutter
- r - ggplot2:如何将数学符号分配给两种不同美学的图例标签?
- javascript - 自定义 HTMLElement 组件测试
- python-3.x - 如何判断一个词树是否与另一个相似?
- python - 图像不显示在 Django 中,但链接在搜索栏中有效
- laravel - 我正在拼命地向我的数据库添加图像(laravel 5.2)
- postgresql - Golang 记录 id 为 0