Class PathCopier

All Implemented Interfaces:
Serializable, Copier<Path>

public class PathCopier extends SrcToDestCopier<Path,PathCopier>
文件复制封装
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Field Summary

    Fields inherited from class org.miaixz.bus.core.lang.copier.SrcToDestCopier

    copyPredicate, src, target
  • Constructor Summary

    Constructors
    Constructor
    Description
    PathCopier(Path src, Path target, CopyOption[] options)
    构造
  • Method Summary

    Modifier and Type
    Method
    Description
    复制src到target中 src路径和target路径相同时,不执行操作 src为文件,target为已存在目录,则拷贝到目录下,文件名不变。 src为文件,target为不存在路径,则目标以文件对待(自动创建父级目录),相当于拷贝后重命名,比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名 src为文件,target是一个已存在的文件,则当CopyOption设为覆盖时会被覆盖,默认不覆盖,抛出FileAlreadyExistsException src为目录,target为已存在目录,整个src目录连同其目录拷贝到目标目录中 src为目录,target为不存在路径,则自动创建目标为新目录,并只拷贝src内容到目标目录中,相当于重命名目录。 src为目录,target为文件,抛出IllegalArgumentException
    复制src的内容到target中 src路径和target路径相同时,不执行操作 src为文件,target为已存在目录,则拷贝到目录下,文件名不变。 src为文件,target为不存在路径,则目标以文件对待(自动创建父级目录),相当于拷贝后重命名,比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名 src为文件,target是一个已存在的文件,则当CopyOption设为覆盖时会被覆盖,默认不覆盖,抛出FileAlreadyExistsException src为目录,target为已存在目录,整个src目录下的内容拷贝到目标目录中 src为目录,target为不存在路径,则自动创建目标为新目录,整个src目录下的内容拷贝到目标目录中,相当于重命名目录。 src为目录,target为文件,抛出IO异常
    static PathCopier
    of(Path src, Path target, boolean isOverride)
    创建文件或目录拷贝器
    static PathCopier
    of(Path src, Path target, CopyOption[] options)
    创建文件或目录拷贝器

    Methods inherited from class org.miaixz.bus.core.lang.copier.SrcToDestCopier

    getCopyPredicate, getSrc, getTarget, setCopyPredicate, setSrc, setTarget

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PathCopier

      public PathCopier(Path src, Path target, CopyOption[] options)
      构造
      Parameters:
      src - 源文件或目录,不能为null且必须存在
      target - 目标文件或目录
      options - 移动参数
  • Method Details

    • of

      public static PathCopier of(Path src, Path target, boolean isOverride)
      创建文件或目录拷贝器
      Parameters:
      src - 源文件或目录
      target - 目标文件或目录
      isOverride - 是否覆盖目标文件
      Returns:
      PathCopier
    • of

      public static PathCopier of(Path src, Path target, CopyOption[] options)
      创建文件或目录拷贝器
      Parameters:
      src - 源文件或目录
      target - 目标文件或目录
      options - 拷贝参数
      Returns:
      PathCopier
    • copy

      public Path copy() throws InternalException
      复制src到target中
      • src路径和target路径相同时,不执行操作
      • src为文件,target为已存在目录,则拷贝到目录下,文件名不变。
      • src为文件,target为不存在路径,则目标以文件对待(自动创建父级目录),相当于拷贝后重命名,比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名
      • src为文件,target是一个已存在的文件,则当CopyOption设为覆盖时会被覆盖,默认不覆盖,抛出FileAlreadyExistsException
      • src为目录,target为已存在目录,整个src目录连同其目录拷贝到目标目录中
      • src为目录,target为不存在路径,则自动创建目标为新目录,并只拷贝src内容到目标目录中,相当于重命名目录。
      • src为目录,target为文件,抛出IllegalArgumentException
      Returns:
      目标Path
      Throws:
      InternalException - IO异常
    • copyContent

      public Path copyContent() throws InternalException
      复制src的内容到target中
      • src路径和target路径相同时,不执行操作
      • src为文件,target为已存在目录,则拷贝到目录下,文件名不变。
      • src为文件,target为不存在路径,则目标以文件对待(自动创建父级目录),相当于拷贝后重命名,比如:/dest/aaa,如果aaa不存在,则aaa被当作文件名
      • src为文件,target是一个已存在的文件,则当CopyOption设为覆盖时会被覆盖,默认不覆盖,抛出FileAlreadyExistsException
      • src为目录,target为已存在目录,整个src目录下的内容拷贝到目标目录中
      • src为目录,target为不存在路径,则自动创建目标为新目录,整个src目录下的内容拷贝到目标目录中,相当于重命名目录。
      • src为目录,target为文件,抛出IO异常
      Returns:
      目标Path
      Throws:
      InternalException - IO异常