JAVA 重命名文件、复制文件夹、拷贝文件的实现

JAVA File实现重命名文件、复制文件夹、拷贝文件

public static void main(String[] args) {
	// 要读取的文件夹路径
	String filepath = "C:\\Users\\admin\\Desktop\\logo";
	File file = new File(filepath);
	if (!file.isDirectory()) {
		System.out.println("文件");
		System.out.println("path=" + file.getPath());
		System.out.println("absolutepath=" + file.getAbsolutePath());
		System.out.println("name=" + file.getName());
	} else if (file.isDirectory()) {
		String[] filelist = file.list();
		System.out.println("文件个数:"+file.list().length);
		for (int i = 0; i < filelist.length; i++) {
			File readfile = new File(filepath + "\\" + filelist[i]);
			if (!readfile.isDirectory()) {
//					System.out.println("path=" + readfile.getPath());
//					System.out.println("absolutepath=" + readfile.getAbsolutePath());
//					System.out.println("name=" + readfile.getName());
				//文件名称
				String bankName = readfile.getName();
				//文件名称前缀
				String name = bankName.substring(0, bankName.lastIndexOf("."));
				System.out.println("文件名称前缀:"+name);
				//将文件名称转换为拼音
				String nameToSpell = ChineseToSpell.getFullSpell(name);
				System.out.println("文件名称前缀转换为拼音名称名称:"+nameToSpell);
				//要更改的文件名称
				String newName = nameToSpell + bankName.substring(bankName.lastIndexOf("."));
				
				//重命名文件
				renameFile(filepath, name, newName);
			}
		}
	}
//		String file1 = "C:\\Users\\admin\\Desktop\\logo - 副本(2)";
//		String file2 = "C:\\Users\\admin\\Desktop\\logo - 副本(3)";
//		System.out.println(copyFolder(file1, file2));
}

/**
 * 重命名文件
 * @param path    文件夹路径
 * @param oldName 要重命名的文件名称
 * @param newName 重命名后的文件名称
 */
public static void renameFile(String path, String oldName, String newName){
	if(!oldName.equals(newName)){
		File oldFile = new File(path+"/"+oldName);
		File newFile = new File(path+"/"+newName);
		if(newFile.exists()){
			System.out.println(newName+"已经存在");
		} else {
			oldFile.renameTo(newFile);
		}
	}
}

/**
 * 拷贝文件
 * @param file1  要拷贝的文件路径
 * @param file2  要复制到的文件夹目录
 * @return
 */
public static boolean copyFile(String file1, String file2) {
	File in = new File(file1);
	File out = new File(file2);
	//要拷贝的文件
	if (!in.exists()) {
		System.out.println(in.getAbsolutePath() + "要拷贝的文件路径错误!!!");
		return false;
	}
	//目标文件夹
	if (!out.exists()) {
		out.mkdirs();
	}
	FileInputStream fis = null;
	FileOutputStream fos = null;
	try {
		//创建读取 要拷贝的文件
		fis = new FileInputStream(in);
		//创建 要复制到的文件
		fos = new FileOutputStream(new File(file2 + "\\" + in.getName()));
	} catch (FileNotFoundException e) {
		e.printStackTrace();
	}
	int c;
	//创建字节数组
	byte[] b = new byte[1024 * 5];
	try {
		//写入文件
		while ((c = fis.read(b)) != -1) {
			fos.write(b, 0, c);
		}
		fis.close();
		fos.flush();
		fos.close();
	} catch (IOException e) {
		e.printStackTrace();
	}
	return false;
}

/**
 * 拷贝文件夹
 * @param file1 要拷贝的文件夹
 * @param file2 拷贝的文件夹
 * @return
 */
public static boolean copyFolder(String file1, String file2) {
	File in = new File(file1);
	File out = new File(file2);
	//要拷贝的文件夹
	if (!in.exists()) {
		System.out.println(in.getAbsolutePath() + "要拷贝的文件夹路径错误!!!");
		return false;
	}
	//目标文件夹
	if (!out.exists()) {
		out.mkdirs();
	}
	//要拷贝的文件夹下的文件或文件夹
	String[] file = in.list();
//		File[] file = in.listFiles();
	FileInputStream fis = null;
	FileOutputStream fos = null;
	File temp = null;
	for (int i = 0; i < file.length; i++) {

		if (file1.endsWith(File.separator)) {
			temp = new File(file1 + file[i]);
		} else {
			temp = new File(file1 + File.separator + file[i]);
		}
		//是文件
		if (temp.isFile()) {
			try {
				//创建读取 要拷贝的文件
				fis = new FileInputStream(temp.getAbsolutePath());
				//创建写入 要拷贝的文件
				fos = new FileOutputStream(new File(file2 + "\\" + temp.getName()));
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			}
		}else if (temp.isDirectory()) {
			//是文件夹
			copyFolder(temp.getAbsolutePath(), file2 + "\\" +temp.getName());
		}
		int c;
		//创建字节数组
		byte[] b = new byte[1024 * 5];
		try {
			//写入文件
			while ((c = fis.read(b)) != -1) {
				fos.write(b, 0, c);
			}
			fis.close();
			fos.flush();
			fos.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	return false;
}

文件的删除可看:https://blog.csdn.net/qq_40083897/article/details/85159814

汉字转化为拼音见下篇。

### 回答1: 实现一个文件管理系统可以使用 Java 语言来编写。 首先,可以使用 Java文件 IO 类(例如 java.io.File)来操作文件文件夹,这样可以方便地读取、写入、删除、重命名文件文件夹。 其次,可以使用 Java 的图形用户界面(GUI)开发框架(例如 JavaFX 或 Swing)来实现界面,便于用户进行操作。 最后,可以使用 Java 的多线程技术(例如 java.util.concurrent 包)来实现文件管理系统的多任务处理能力。 总的来说,使用 Java 实现一个文件管理系统需要掌握 Java文件 IO、图形用户界面开发和多线程技术。 ### 回答2: 使用Java实现一个文件管理系统可以通过以下步骤完成: 首先,需要定义文件文件夹类。文件类可以包括文件名、文件类型、文件大小和文件路径等属性,提供获取和设置这些属性的方法。文件夹类可以包括文件夹名和包含的文件文件夹列表,同样提供相应的方法进行操作。 然后,可以创建一个文件系统类,负责管理文件文件夹。该类可以包括一个文件文件夹列表,以及相应的方法来添加、删除和查询文件文件夹。可以使用ArrayList来存储文件文件夹列表。 接下来,可以实现一些常用的文件操作功能,如创建文件、删除文件重命名文件复制文件、移动文件等。这些操作可以在文件系统类中实现,根据用户输入的命令进行相应的操作。 可以通过命令行或图形界面来实现与用户的交互。命令行界面可以接受用户输入的命令,然后调用文件系统类中的相应方法进行操作,并返回相应的结果。图形界面可以通过按钮、文本框等组件来实现用户的输入和展示结果。 在文件管理系统中,还可以实现一些高级功能,如文件搜索、文件排序、文件压缩与解压缩等。对于文件搜索功能,可以通过递归遍历文件夹文件来查找符合条件的文件。对于文件排序功能,可以使用不同的排序算法对文件列表进行排序。对于文件压缩与解压缩功能,可以使用Java提供的压缩和解压缩类库进行实现。 最后,为了保证文件管理系统的稳定性和数据的安全性,可以考虑实现文件备份和恢复功能。可以使用Java提供的文件输入输出流和文件拷贝功能来进行文件的备份和恢复。 总之,使用Java实现一个文件管理系统需要定义合适的类和方法,实现常用的文件操作功能,并实现与用户的交互。这样可以方便用户管理和操作文件,提高工作效率。 ### 回答3: 为了使用Java实现一个文件管理系统,我们需要考虑以下几个关键方面: 1. 文件系统的结构:文件管理系统可以使用树状结构来组织文件文件夹。每个节点代表一个文件文件夹,其中根节点是最顶级的文件夹。我们可以使用Java的类来表示文件文件夹,并使用适当的数据结构来组织它们。 2. 创建文件文件夹:我们需要实现方法来创建新的文件文件夹。对于文件夹,我们需要考虑如何处理重名的情况,并确保文件文件夹的名称唯一。 3. 删除文件文件夹:我们还需要实现方法来删除文件文件夹。在删除文件夹时,我们需要递归删除所有内容。 4. 重命名文件文件夹:如果用户想要重命名文件文件夹,我们应该提供相应的方法来处理这种情况。 5. 移动文件文件夹:用户可能需要将文件文件夹移动到其他位置。我们需要实现方法来支持此功能,并确保移动后的目标位置唯一。 6. 搜索文件文件夹:我们可以实现根据名称、后缀名或其他属性来搜索文件文件夹的方法。这将帮助用户快速找到所需的文件。 7. 文件访问权限控制:我们可以为文件文件夹定义不同的访问权限,例如读取、写入和执行。我们需要实现相应的方法来处理这些权限。 8. 文件属性:为了提供更多信息,我们可以为文件文件夹定义额外的属性,如创建日期、修改日期和文件大小等。 无论是在控制台界面还是图形用户界面中,我们可以实现各种操作和功能来使用和管理文件系统。使用Java可以方便地处理文件文件夹的操作,同时还可以提供良好的用户体验和可靠的文件管理功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值