public class FileCopier extends SrcToDestCopier<File,FileCopier>
1、文件复制到文件 2、文件复制到目录 3、目录复制到目录 4、目录下的文件和目录复制到另一个目录
| 限定符和类型 | 字段和说明 |
|---|---|
private boolean |
isCopyAttributes
是否拷贝所有属性
|
private boolean |
isCopyContentIfDir
当拷贝来源是目录时是否只拷贝目录下的内容
|
private boolean |
isOnlyCopyFile
当拷贝来源是目录时是否只拷贝文件而忽略子目录
|
private boolean |
isOverride
是否覆盖目标文件
|
private static long |
serialVersionUID |
copyFilter, dest, src| 构造器和说明 |
|---|
FileCopier(File src,
File dest)
构造
|
| 限定符和类型 | 方法和说明 |
|---|---|
File |
copy()
执行拷贝
拷贝规则为: 1、源为文件,目标为已存在目录,则拷贝到目录下,文件名不变 2、源为文件,目标为不存在路径,则目标以文件对待(自动创建父级目录)比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名 3、源为文件,目标是一个已存在的文件,则当 setOverride(boolean)设为true时会被覆盖,默认不覆盖
4、源为目录,目标为已存在目录,当setCopyContentIfDir(boolean)为true时,只拷贝目录中的内容到目标目录中,否则整个源目录连同其目录拷贝到目标目录中
5、源为目录,目标为不存在路径,则自动创建目标为新目录,然后按照规则4复制
6、源为目录,目标为文件,抛出IO异常
7、源路径和目标路径相同时,抛出IO异常
|
static FileCopier |
create(File src,
File dest)
新建一个文件复制器
|
static FileCopier |
create(String srcPath,
String destPath)
新建一个文件复制器
|
private void |
internalCopyDirContent(File src,
File dest)
拷贝目录内容,只用于内部,不做任何安全检查
拷贝内容的意思为源目录下的所有文件和目录拷贝到另一个目录下,而不拷贝源目录本身 |
private void |
internalCopyFile(File src,
File dest)
拷贝文件,只用于内部,不做任何安全检查
情况如下: 1、如果目标是一个不存在的路径,则目标以文件对待(自动创建父级目录)比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名 2、如果目标是一个已存在的目录,则文件拷贝到此目录下,文件名与原文件名一致 |
boolean |
isCopyAttributes()
是否拷贝所有属性
|
boolean |
isCopyContentIfDir()
当拷贝来源是目录时是否只拷贝目录下的内容
|
boolean |
isOnlyCopyFile()
当拷贝来源是目录时是否只拷贝文件而忽略子目录
|
boolean |
isOverride()
是否覆盖目标文件
|
FileCopier |
setCopyAttributes(boolean isCopyAttributes)
设置是否拷贝所有属性
|
FileCopier |
setCopyContentIfDir(boolean isCopyContentIfDir)
当拷贝来源是目录时是否只拷贝目录下的内容
|
FileCopier |
setOnlyCopyFile(boolean isOnlyCopyFile)
设置当拷贝来源是目录时是否只拷贝文件而忽略子目录
|
FileCopier |
setOverride(boolean isOverride)
设置是否覆盖目标文件
|
getCopyFilter, getDest, getSrc, setCopyFilter, setDest, setSrcprivate static final long serialVersionUID
private boolean isOverride
private boolean isCopyAttributes
private boolean isCopyContentIfDir
private boolean isOnlyCopyFile
public static FileCopier create(String srcPath, String destPath)
srcPath - 源文件路径(相对ClassPath路径或绝对路径)destPath - 目标文件路径(相对ClassPath路径或绝对路径)FileCopierpublic static FileCopier create(File src, File dest)
src - 源文件dest - 目标文件FileCopierpublic boolean isOverride()
public FileCopier setOverride(boolean isOverride)
isOverride - 是否覆盖目标文件public boolean isCopyAttributes()
public FileCopier setCopyAttributes(boolean isCopyAttributes)
isCopyAttributes - 是否拷贝所有属性public boolean isCopyContentIfDir()
public FileCopier setCopyContentIfDir(boolean isCopyContentIfDir)
isCopyContentIfDir - 是否只拷贝目录下的内容public boolean isOnlyCopyFile()
public FileCopier setOnlyCopyFile(boolean isOnlyCopyFile)
isOnlyCopyFile - 当拷贝来源是目录时是否只拷贝文件而忽略子目录public File copy() throws IORuntimeException
1、源为文件,目标为已存在目录,则拷贝到目录下,文件名不变 2、源为文件,目标为不存在路径,则目标以文件对待(自动创建父级目录)比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名 3、源为文件,目标是一个已存在的文件,则当setOverride(boolean)设为true时会被覆盖,默认不覆盖 4、源为目录,目标为已存在目录,当setCopyContentIfDir(boolean)为true时,只拷贝目录中的内容到目标目录中,否则整个源目录连同其目录拷贝到目标目录中 5、源为目录,目标为不存在路径,则自动创建目标为新目录,然后按照规则4复制 6、源为目录,目标为文件,抛出IO异常 7、源路径和目标路径相同时,抛出IO异常
IORuntimeException - IO异常private void internalCopyDirContent(File src, File dest) throws IORuntimeException
src - 源目录dest - 目标目录IORuntimeException - IO异常private void internalCopyFile(File src, File dest) throws IORuntimeException
1、如果目标是一个不存在的路径,则目标以文件对待(自动创建父级目录)比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名 2、如果目标是一个已存在的目录,则文件拷贝到此目录下,文件名与原文件名一致
src - 源文件,必须为文件dest - 目标文件,如果非覆盖模式必须为目录IORuntimeException - IO异常Copyright © 2020. All rights reserved.