admin 管理员组文章数量: 887007
【Java脚本】
在日常开发和生活工作中,经常要对文件进行复制、剪切等操作。当数据量巨大,几百上千甚至更多时,且不位于同一个文件夹下时,手动操作需要花费大量时间。通过简单的小脚本,则可以提高效率,关键是可以复用,一劳永逸。
一、场景
将指定文件夹下的文件移动到指定文件夹下。
二、实现方式
方式一:Java原生类代码实现
public boolean renameTo(File dest)
栗子:将F盘下的所有文件夹下的所有.mp3文件移动到F盘根目录 (脚本由来场景)
public static void fileMove(){//拿到所有文件,逐一遍历移动到根目录//拿到第一级的f盘的所有文件夹File f = new File("f:");FileFilter fileFilter = new FileFilter() {@Overridepublic boolean accept(File pathname) {if (pathname.isDirectory()){return true;}return false;}};File[] allDirectories= f.listFiles(fileFilter);//拿到对应的第二级f盘下的文件夹中所有文件,遍历所有文件夹,文件名要包含.mp3for (File directory : allDirectories) {File[] allFiles = directory.listFiles();for (File item: allFiles ) {//可以匿名内部类写FileFilter指定文件类型、名称等if (!item.getName().endsWith(".mp3")){continue;}File newName = new File("f:\\" + item.getName());System.out.println("监测到文件,准备转移");if(!item.renameTo(newName)) {System.out.println(item.getName() + " 文件转移失败!");continue;}System.out.println(item.getName() + " 文件移动成功!");}}System.out.println("文件转移完毕,程序结束");}
方式二:使用Apache的commons-io工具类实现
public static void moveFile(File srcFile, File destFile) throws IOException
Maven导包:
<!-- -->
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.11.0</version>
</dependency>
栗子:简单的将D盘下的test文件夹中的a.txt文件移动到D盘下。(只是简单栗子)
public static void apacheCommons(){File sourceFile = new File("D:test/a.txt");//目的文件名可以和原文件名不一致
// File destFile = new File("D:b.txt"); File destFile = new File("D:a.txt");try {FileUtils.moveFile(sourceFile,destFile);System.out.println("移动成功");}catch (IOException e){e.printStackTrace();}
}
三、实现方式对比
Java原生类实现:当移动失败时,方法返回false。失败的原因之一可能是已经存在这样的目标文件。
Apache commons-io工具类实现:当移动失败时,会抛出异常。失败的原因,根据源码显示是删除文件失败。
throw new IOException("Failed to delete original file '" + srcFile + "' after copy to '" + destFile + "'");
最后
匆匆记录,而且笔者水平有限,文章不是很全面,还有很多需要学习的地方,有误的地方请指正,谢谢啦
本文标签: Java脚本
版权声明:本文标题:【Java脚本】 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732356149h1534487.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论