Java:如何复制目录但排除主目录内部的一些目录

时间:2011-06-01 17:19:07

标签: java directory copy

使用java,我想复制整个目录,不包括某些子目录(以及这些子目录中的所有文件)的文件路径。我怎样才能做到这一点?我在SO上看过几个这样的问题,但是使用Perl / ANT等但不使用Java。

2 个答案:

答案 0 :(得分:2)

从Apache Commons IO尝试FileUtils.html#copyDirectory。其中一个重载版本使用FileFilter实例,您可以使用单个简单的方法实现:

boolean accept(File pathname)

另请查看Commons IO中现有的方便FileFilter implementations列表:

  • AgeFileFilter
  • AndFileFilter
  • CanReadFileFilter
  • CanWriteFileFilter
  • DelegateFileFilter
  • DirectoryFileFilter
  • EmptyFileFilter
  • FileFileFilter
  • HiddenFileFilter
  • MagicNumberFileFilter
  • NameFileFilter
  • NotFileFilter
  • OrFileFilter
  • PrefixFileFilter
  • RegexFileFilter
  • SizeFileFilter
  • SuffixFileFilter
  • WildcardFileFilter
  • WildcardFilter

答案 1 :(得分:1)

您可以像使用任何其他语言一样进行操作

  1. 从源目录的根目录开始
  2. 浏览所有孩子(例如使用广度优先搜索)
  3. 如果您想忽略该孩子,请忽略它 如果子项是目录,请对该子项使用File.mkdir() 如果孩子是文件,请复制它   使用FileInputStream打开文件   使用FileOutputStream将您读取的数据写入新文件
  4. 对每个子目录重复
  5. 或者,你可以轻松地做到这一点 1. Apache FileUtils
    2. Java File Copy Library项目