File类的重命名功能

1.File类的概述和构造方法
2.File类的创建功能
3.File类的获取功能
4.File类的判断功能
5.File类的重命名功能
6.File类的删除功能
7.File类的高级获取

File类的重命名功能

package cn.itcast_01;

import java.io.File;
import java.io.IOException;

/*
 * 重命名功能:public boolean renameTo(File dest) 
 *       如果路径名相同,就是改名
 *       如果路径名不同,就是剪切加改名
 * 
 * 路径以盘符开始:绝对路径   c:\\a.txt
 * 路径以不盘符开始:相对路径    a.txt
 */
public class File类的重命名功能 {

	public static void main(String[] args) throws IOException {
//		//创建一个文件对象
//		File file = new File("林青霞.jpg");
//		System.out.println(file.createNewFile());
//		//需求:我要修改这个文件名成为 东方不败.jpg
//		File newfile = new File("东方不败.jpg");
//		System.out.println(file.renameTo(newfile));
		
		File file2 = new  File ("东方不败.jpg");
		File newfile = new  File ("e:\\林青霞.jpg");
		System.out.println(file2.renameTo(newfile));
	}
}
批量重命名软件(VC6) 2019年03月30日 18:25:36 南棱笑笑生 阅读数:4 编辑 有时候需要批量重命名一整个目录的文件,一个一个的修改肯定花时间和精力了! https://item.jd.com/42982472342.html 基本信息 书名:Visual C++开发实战宝典(配光盘)(软件开发实战宝典) 定价:79.80元 作者:宋坤 等编著 出版社:清华大学出版社 出版日期:2009-12-01 ISBN:9787302209058 字数: 页码: 版次: 装帧:平装 开本:16开 商品重量: 可能宋坤先生默默无名,从里面还是找到了一个有用的程序,比如第8章的: 8.7 实战 8.7.2 对位图文件进行批量编号命名..............348 例8.12 目录名:FileRename 由于VC6早已经遭到淘汰了,但是联系编程还有稍许价值,现阶段只能在虚拟机VMware14中运行WINDOWS XP来安装运行VC6了。 还有一个重要的问题是360杀毒软件会将你编译生成的EXE文件都处理为未知的可疑文件,提醒你隔离或者删除!^_ 在360的老板周鸿祎的眼里草木皆兵:宁可错杀一千,不可放走一个! 为了简单期间,我将360杀毒和360安全卫士都退出了! 发现未知程序将要运行,是否放行? 可能是没有数字签名,微软的比尔盖茨也告诉你的程序不安全:^_ 无法验证发布者。您确定要运行此软件吗? 由于是为重命名BMP扩展名的位图文件准备的程序,因此程序运行的时候除了:E:\刘杨-商业修图教程 目录多了一个BMP目录之外啥也没有。(前缀使用:刘杨-商业修图教程。下同) 首先干掉必须是BMP扩展名! //开始批量重命名文件 void CFileRenameDlg::OnBtStart() { CFileFind flFind; CString szDir; m_FileDir.GetWindowText(szDir); flFind.FindFile(szDir + "\\*.*"); //统计位图数量 int nBmpCount = 0; CFileFind flFindCount; flFindCount.FindFile(szDir + "\\*.*"); while (flFindCount.FindNextFile()) { if (!flFindCount.IsDirectory()) { CString szPath; szPath = flFindCount.GetFilePath(); char szLetter[128] = {0}; //盘符 char szCurDir[128] = {0}; //目录 char szName[128] = {0}; //文件名 char szExt[128] = {0}; //扩展名 _splitpath(szPath.GetBuffer(0), szLetter, szCurDir, szName, szExt); //分解目录 //判断文件扩展名 //if (strcmp(szExt, ".bmp") == 0) { nBmpCount++; } } } flFindCount.Close(); m_Progress.SetRange32(0, nBmpCount); //遍历位图文件 szDir = szDir + "\\bmp"; CreateDirectory(szDir, NULL); //创建目录 int nIndex = 1; while(flFind.FindNextFile()) { if (!flFind.IsDirectory()) { CString szPath; szPath = flFind.GetFilePath(); char szLetter[128] = {0}; //盘符 char szCurDir[128] = {0}; //目录 char szName[128] = {0}; //文件名 char szExt[128] = {0}; //扩展名 _splitpath(szPath.GetBuffer(0), szLetter, szCurDir, szName, szExt); //分解目录 //获取前缀 CString szPrefix; m_Prefix.GetWindowText(szPrefix); //判断文件扩展名 //if (strcmp(szExt, ".bmp") == 0) { CFile file; CString szCreatedName = szDir; szCreatedName += "\\"; szCreatedName += szPrefix; //添加前缀 CString szIndex; szIndex.Format("%d", nIndex); szCreatedName += szIndex; //添加序号 szCreatedName += ".bmp"; m_Progress.SetPos(nIndex); nIndex++; //创建新的文件 file.Open(szCreatedName, CFile::modeCreate|CFile::modeReadWrite); CFile readFile; readFile.Open(szPath, CFile::modeRead); DWORD dwLen = readFile.GetLength(); BYTE *pData = new BYTE[dwLen]; readFile.ReadHuge((void*)pData, dwLen); readFile.Close(); file.WriteHuge((void*)pData, dwLen); file.Close(); delete [] pData; szCreatedName.ReleaseBuffer(); szIndex.ReleaseBuffer(); } } } flFind.Close(); CString szBmpCount; szBmpCount.Format("%d个文件!", nBmpCount); MessageBox("操作完成,处理" + szBmpCount); szBmpCount.ReleaseBuffer(); } 生成的文件名为: 刘杨-商业修图教程1.bmp 刘杨-商业修图教程10.bmp 刘杨-商业修图教程2.bmp 刘杨-商业修图教程3.bmp 刘杨-商业修图教程4.bmp 刘杨-商业修图教程5.bmp 刘杨-商业修图教程6.bmp 刘杨-商业修图教程7.bmp 刘杨-商业修图教程8.bmp 刘杨-商业修图教程9.bmp 还是需要修改扩展名: //开始批量重命名文件 void CFileRenameDlg::OnBtStart() { CFileFind flFind; CString szDir; m_FileDir.GetWindowText(szDir); flFind.FindFile(szDir + "\\*.*"); //统计位图数量 int nBmpCount = 0; CFileFind flFindCount; flFindCount.FindFile(szDir + "\\*.*"); while (flFindCount.FindNextFile()) { if (!flFindCount.IsDirectory()) { CString szPath; szPath = flFindCount.GetFilePath(); char szLetter[128] = {0}; //盘符 char szCurDir[128] = {0}; //目录 char szName[128] = {0}; //文件名 char szExt[128] = {0}; //扩展名 _splitpath(szPath.GetBuffer(0), szLetter, szCurDir, szName, szExt); //分解目录 //判断文件扩展名 //if (strcmp(szExt, ".bmp") == 0) { nBmpCount++; } } } flFindCount.Close(); m_Progress.SetRange32(0, nBmpCount); //遍历位图文件 szDir = szDir + "\\bmp"; CreateDirectory(szDir, NULL); //创建目录 int nIndex = 1; while(flFind.FindNextFile()) { if (!flFind.IsDirectory()) { CString szPath; szPath = flFind.GetFilePath(); char szLetter[128] = {0}; //盘符 char szCurDir[128] = {0}; //目录 char szName[128] = {0}; //文件名 char szExt[128] = {0}; //扩展名 _splitpath(szPath.GetBuffer(0), szLetter, szCurDir, szName, szExt); //分解目录 //获取前缀 CString szPrefix; m_Prefix.GetWindowText(szPrefix); //判断文件扩展名 //if (strcmp(szExt, ".bmp") == 0) { CFile file; CString szCreatedName = szDir; szCreatedName += "\\"; szCreatedName += szPrefix; //添加前缀 CString szIndex; szIndex.Format("%d", nIndex); szCreatedName += szIndex; //添加序号 //szCreatedName += ".bmp"; szCreatedName += szExt; m_Progress.SetPos(nIndex); nIndex++; //创建新的文件 file.Open(szCreatedName, CFile::modeCreate|CFile::modeReadWrite); CFile readFile; readFile.Open(szPath, CFile::modeRead); DWORD dwLen = readFile.GetLength(); BYTE *pData = new BYTE[dwLen]; readFile.ReadHuge((void*)pData, dwLen); readFile.Close(); file.WriteHuge((void*)pData, dwLen); file.Close(); delete [] pData; szCreatedName.ReleaseBuffer(); szIndex.ReleaseBuffer(); } } } flFind.Close(); CString szBmpCount; szBmpCount.Format("%d个文件!", nBmpCount); MessageBox("操作完成,处理" + szBmpCount); szBmpCount.ReleaseBuffer(); } 得到的文件名为: 刘杨-商业修图教程1.avi 刘杨-商业修图教程10.avi 刘杨-商业修图教程2.avi 刘杨-商业修图教程3.avi 刘杨-商业修图教程4.avi 刘杨-商业修图教程5.avi 刘杨-商业修图教程6.avi 刘杨-商业修图教程7.avi 刘杨-商业修图教程8.avi 刘杨-商业修图教程9.avi 现在你就会发现你所命名的文件一位数和两位数的掺杂在一起,不整洁! 假定你所批量命名的文件名不超过100个(最多99个。) 继续修改代码: 刘杨-商业修图教程01.avi 刘杨-商业修图教程02.avi 刘杨-商业修图教程03.avi 刘杨-商业修图教程04.avi 刘杨-商业修图教程05.avi 刘杨-商业修图教程06.avi 刘杨-商业修图教程07.avi 刘杨-商业修图教程08.avi 刘杨-商业修图教程09.avi 刘杨-商业修图教程10.avi 结束语: 本程序还可以继续修改,改名之前直接统计需要重命名的文件的数目,然后自动配置一位数、二位数、三位数等等。 可能是微软的比尔盖茨的原因,最后重命名的文件的计数有点问题。不影响工作!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值