怎么在Java移动文件夹
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"怎么在Java移动文件夹",在日常操作中,相信很多人在怎么在Java移动文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么在Java移动文件夹"
千家信息网最后更新 2025年11月07日怎么在Java移动文件夹
这篇文章主要介绍"怎么在Java移动文件夹",在日常操作中,相信很多人在怎么在Java移动文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么在Java移动文件夹"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
在Java移动文件夹及其所有子文件与子文件夹可以有如下的一段简单的方法来说明:
public static void moveFolder(String oldPath, String newPath) { //先复制文件 copyFolder(oldPath, newPath); //则删除源文件,以免复制的时候错乱 deleteDir(new File(oldPath)); }不应该直接剪切文件,防止在剪切的时候出错,导致这样那样的问题。
在Java复制文件夹及其所有子文件与子文件夹,关键是删除文件夹及其子文件与子文件夹。
在Java中,File类的delete()方法只能删除为空的文件夹或者单个文件,因此必须遍历整个文件夹,先从最内层的文件夹中的文件开始,进行递归删除,具体方法如下:
// 删除某个目录及目录下的所有子目录和文件 public static boolean deleteDir(File dir) { // 如果是文件夹 if (dir.isDirectory()) { // 则读出该文件夹下的的所有文件 String[] children = dir.list(); // 递归删除目录中的子目录下 for (int i = 0; i < children.length; i++) { // File f=new File(String parent ,String child) // parent抽象路径名用于表示目录,child 路径名字符串用于表示目录或文件。 // 连起来刚好是文件路径 boolean isDelete = deleteDir(new File(dir, children[i])); // 如果删完了,没东西删,isDelete==false的时候,则跳出此时递归 if (!isDelete) { return false; } } } // 读到的是一个文件或者是一个空目录,则可以直接删除 return dir.delete(); }因此,整个方法连起来就是这个样子,把C盘下的A文件夹及其所有子文件与子文件夹,移动到F盘,并且重新命名:
import java.io.*; public class CutTest { // 删除某个目录及目录下的所有子目录和文件 public static boolean deleteDir(File dir) { // 如果是文件夹 if (dir.isDirectory()) { // 则读出该文件夹下的的所有文件 String[] children = dir.list(); // 递归删除目录中的子目录下 for (int i = 0; i < children.length; i++) { // File f=new File(String parent ,String child) // parent抽象路径名用于表示目录,child 路径名字符串用于表示目录或文件。 // 连起来刚好是文件路径 boolean isDelete = deleteDir(new File(dir, children[i])); // 如果删完了,没东西删,isDelete==false的时候,则跳出此时递归 if (!isDelete) { return false; } } } // 读到的是一个文件或者是一个空目录,则可以直接删除 return dir.delete(); } // 复制某个目录及目录下的所有子目录和文件到新文件夹 public static void copyFolder(String oldPath, String newPath) { try { // 如果文件夹不存在,则建立新文件夹 (new File(newPath)).mkdirs(); // 读取整个文件夹的内容到file字符串数组,下面设置一个游标i,不停地向下移开始读这个数组 File filelist = new File(oldPath); String[] file = filelist.list(); // 要注意,这个temp仅仅是一个临时文件指针 // 整个程序并没有创建临时文件 File temp = null; for (int i = 0; i < file.length; i++) { // 如果oldPath以路径分隔符/或者\结尾,那么则oldPath/文件名就可以了 // 否则要自己oldPath后面补个路径分隔符再加文件名 // 谁知道你传递过来的参数是f:/a还是f:/a/啊? if (oldPath.endsWith(File.separator)) { temp = new File(oldPath + file[i]); } else { temp = new File(oldPath + File.separator + file[i]); } // 如果游标遇到文件 if (temp.isFile()) { FileInputStream input = new FileInputStream(temp); // 复制并且改名 FileOutputStream output = new FileOutputStream(newPath + "/" + "rename_" + (temp.getName()).toString()); byte[] bufferarray = new byte[1024 * 64]; int prereadlength; while ((prereadlength = input.read(bufferarray)) != -1) { output.write(bufferarray, 0, prereadlength); } output.flush(); output.close(); input.close(); } // 如果游标遇到文件夹 if (temp.isDirectory()) { copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]); } } } catch (Exception e) { System.out.println("复制整个文件夹内容操作出错"); } } public static void moveFolder(String oldPath, String newPath) { // 先复制文件 copyFolder(oldPath, newPath); // 则删除源文件,以免复制的时候错乱 deleteDir(new File(oldPath)); } public static void main(String[] args) { moveFolder("c:/A", "f:/B"); } }到此,关于"怎么在Java移动文件夹"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
文件
文件夹
目录
路径
移动
子目
子目录
方法
时候
递归
路径名
学习
字符
字符串
游标
错乱
东西
内容
分隔符
完了
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
建立数据库新建连接
中学第二季度安全数据库
济宁erp软件开发公司
网络安全班务记载
海康 服务器 说明
二手影吧服务器
分布式数据库故障类型
浦东新区推广软件开发咨询热线
dota2圣堂天赋数据库
达梦数据库归档模式什么意思
深圳软件开发公司优势
策隆网络技术股份有限公司
软件开发关键技术
远程重启ip服务器
西电数据库技术与应用考试题
斗战神数据库
拓普视频服务器手机端
时尚网络技术加盟项目
数据库.dat文件怎么用
quartz数据库锁的作用
魔兽怀旧服散人选哪个服务器
app软件开发一个多少钱
像素工厂远程服务器管理端口
网络安全相关面试题
七日杀steam好友联机服务器终止了
amz全球智慧数据库
百度搜索经常连接不上服务器
工商银行软件开发 待遇
互联网科技公司算企事业单位吗
税务网络安全演练