修改Bug:当FileCopier的目标文件是相对路径的时候,复制会出现异常

This commit is contained in:
gxz 2022-03-09 17:03:17 +08:00
parent 4fa050c56f
commit aec10a7714
2 changed files with 16 additions and 6 deletions

View File

@ -268,7 +268,7 @@ public class FileCopier extends SrcToDestCopier<File, FileCopier>{
}else { }else {
//路径不存在则创建父目录 //路径不存在则创建父目录
//noinspection ResultOfMethodCallIgnored //noinspection ResultOfMethodCallIgnored
dest.getParentFile().mkdirs(); dest.getAbsoluteFile().getParentFile().mkdirs();
} }
final ArrayList<CopyOption> optionList = new ArrayList<>(2); final ArrayList<CopyOption> optionList = new ArrayList<>(2);

View File

@ -5,41 +5,51 @@ import org.junit.Test;
import cn.hutool.core.io.file.FileCopier; import cn.hutool.core.io.file.FileCopier;
import java.io.File;
/** /**
* 文件拷贝单元测试 * 文件拷贝单元测试
* @author Looly * @author Looly
* *
*/ */
public class FileCopierTest { public class FileCopierTest {
@Test @Test
@Ignore @Ignore
public void dirCopyTest() { public void dirCopyTest() {
FileCopier copier = FileCopier.create("D:\\Java", "e:/eclipse/eclipse2.zip"); FileCopier copier = FileCopier.create("D:\\Java", "e:/eclipse/eclipse2.zip");
copier.copy(); copier.copy();
} }
@Test @Test
@Ignore @Ignore
public void dirCopyTest2() { public void dirCopyTest2() {
//测试带.的文件夹复制 //测试带.的文件夹复制
FileCopier copier = FileCopier.create("D:\\workspace\\java\\.metadata", "D:\\workspace\\java\\.metadata\\temp"); FileCopier copier = FileCopier.create("D:\\workspace\\java\\.metadata", "D:\\workspace\\java\\.metadata\\temp");
copier.copy(); copier.copy();
FileUtil.copy("D:\\workspace\\java\\looly\\hutool\\.git", "D:\\workspace\\java\\temp", true); FileUtil.copy("D:\\workspace\\java\\looly\\hutool\\.git", "D:\\workspace\\java\\temp", true);
} }
@Test(expected = IORuntimeException.class) @Test(expected = IORuntimeException.class)
public void dirCopySubTest() { public void dirCopySubTest() {
//测试父目录复制到子目录报错 //测试父目录复制到子目录报错
FileCopier copier = FileCopier.create("D:\\workspace\\java\\.metadata", "D:\\workspace\\java\\.metadata\\temp"); FileCopier copier = FileCopier.create("D:\\workspace\\java\\.metadata", "D:\\workspace\\java\\.metadata\\temp");
copier.copy(); copier.copy();
} }
@Test @Test
@Ignore @Ignore
public void copyFileToDirTest() { public void copyFileToDirTest() {
FileCopier copier = FileCopier.create("d:/GReen_Soft/XshellXftpPortable.zip", "c:/hp/"); FileCopier copier = FileCopier.create("d:/GReen_Soft/XshellXftpPortable.zip", "c:/hp/");
copier.copy(); copier.copy();
} }
@Test
@Ignore
public void copyFileByRelativePath(){
// 当复制的目标文件位置是相对路径的时候可以通过
FileCopier copier = FileCopier.create(new File("pom.xml"),new File("aaa.txt"));
copier.copy();
}
} }