怎么在Java移动文件夹
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章主要介绍"怎么在Java移动文件夹",在日常操作中,相信很多人在怎么在Java移动文件夹问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么在Java移动文件夹"
千家信息网最后更新 2025年01月17日怎么在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安全错误
数据库的锁怎样保障安全
如何创建互联网科技公司
我的世界java服务器安
垃圾分类软件开发推荐哪家
在并行数据库中要将表拆分
星尘软件开发
iphonexr服务器出现问题
智慧矿山与网络安全
搭建web服务器什么意思
多数据库表查询语句
swot分析网络安全工程师
单选按钮与数据库交互
数据库外键设置好什么样子
公司网络技术部工资待遇
软件开发会用到vc6.0吗
网络安全法规定 需要实名
风电场网络安全排查
吉林省寰师网络技术有限公司
多媒体教学软件开发模式
大文本读取 数据库
o2o软件开发系统
公安网络安全咨询电话
人工智能工业软件开发
略阳县人民医院网络安全
数据库查一个表格
安卓软件开发 注册机
风电场网络安全排查
数据库娱乐丶信任75505
如何理解网络技术的先进性
云浮诠残网络技术有限公司
数据库小数输入