java实现文件的移动(剪切)

该程序使用Java实现了文件或文件夹的剪切功能,用户输入源文件和目标文件夹路径,程序将源文件移动到目标位置。如果目标位置已存在相同名称的文件或目录,程序会尝试创建副本或目录。同时,程序还提供了删除源文件或目录的功能,确保剪切操作完成后源文件被正确清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package javaio.recursion.Reader;

import java.io.*;
import java.util.Scanner;

public class FileCut {

	public static void main(String[] args) {
		Scanner s=new Scanner(System.in);
		System.out.println("输入你想要剪切的文件或文件夹");
		String str1=s.next();
		System.out.println("输入你想要粘贴在哪de文件夹");
		String str2=s.next();
		File f1=new File(str1);
		File f2=new File(str2);
		filecut(f1,f2);

	}
	
	public static void filecut(File fs,File ft) {
		/*if(fs.isFile()&&ft.isDirectory()) {
			File tmp=ft;
			File f=new File(ft,fs.getName());
			if(!fs.renameTo(f)) {
				ft=new File(tmp,ft.getName()+"-副本");
				fs.renameTo(f);
			}
		} */if(ft.isDirectory()) {

			File tmp=ft;
			ft=new File(ft,fs.getName());
			if(!ft.mkdirs()) {
				ft=new File(tmp,fs.getName()+"-副本");  //如果是相同的文件名 即目录创建失败 则改名
				ft.mkdirs();
			}
			File []file=fs.listFiles();
			for(File x:file) {
				if(x.isDirectory()) {
				  //File f=new File(ft,x.getName());
                  //System.out.println(x.getAbsolutePath());
                  //System.out.println(f.getAbsolutePath());
					filecut(x,ft);
				}else {
					File f=new File(ft,x.getName());
					x.renameTo(f);
				}
			}
			deletedir(fs);
			
		}
	}
	public static void deletedir(File f) {
		if(!f.exists())
		{
			System.out.println("文件不存在");
		}else
		{
			if(f.delete())
			{
				System.out.println("删除:"+f.getName());
			}else
			{
				File[] f1=f.listFiles();
				for(File x:f1) {
					deletedir(x);
				}
				deletedir(f);
			}
		}
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值