1. 将指定目录下的所有文件复制到指定目录。 该方式只能获取指定目录中只有一个文件,且该文件在最底层的形式。
2. 文件复制,使用的是jdk1.7中的api。
3. 如果想获取目录下所有的文件, 可以定义一个map, 遍历目录,判断File是文件时,将其添加到map中, 最后在对其操作。
public static void main(String[] args) throws IOException { String rootDir = "E://tmp//video//videos"; String destDir = "E://tmp//video//videosall//"; Path source = null; Path target = null; File rootFile = new File(rootDir); File[] files = rootFile.listFiles(); StringBuilder sb = new StringBuilder(); File retFile = null; for (File file : files) { retFile = getVideoFile(file, sb);//执行完成后, retFile为当前目录下的最底层文件, sb为该文件的路径 source = Paths.get(rootDir + sb.toString()); target = Paths.get(destDir + retFile.getName()); Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING); // 复制文件到指定目录, 文件已存在则覆盖原有文件 sb.setLength(0); // 清空目录记录 } } /** * * @desc: 获取目标文件中最底层的文件,及其路径, 只能用于目标目录中只有一个文件的情况 * @auth: zona * 2017年2月18日 上午10:35:13 * @param filee * @param sb * @return */ public static File getVideoFile(File filee, StringBuilder sb) { if(filee.isDirectory()) { sb.append("/"+filee.getName()); File[] rootFiles = filee.listFiles(); for (File file : rootFiles) { // TODO 这里需要return, 但是还不知道原因 return getVideoFile(file, sb); } }else { sb.append("/"+filee.getName()); } return filee; }
新闻热点
疑难解答