C++批量修改文件夹下文件名
来源:互联网 发布:python反编译 编辑:程序博客网 时间:2024/05/16 05:14
在微信朋友圈里面看到别人发的一个音乐相册,里面都是员工的party照,当时就想把这些照片给扒下来,鉴于音乐相册仍是用html制作的,那么素材应该都很容易获取了(暑假实习的时候经常做些扒网站素材的活),所以扒这些照片很多方法,这里就不介绍了,当时当我扒下来之后,发现都是不可读文件,后面尝试了下修改文件名后缀,能读取,既然这样的话,那把所有文件名都修改过来即可了,nonono,身为一名有洁癖的程序员,这种累活应该交给电脑干,所以当时就想着写一个脚本来做,因为暑假有用过php服务器来线上批量修改文件夹名(PHP脚本修改),想到这种方法比较麻烦,改用C++来做,以后便于修改。
#include <iostream>#include <windows.h>#include <stdio.h>using namespace std;#define MAX_PATH 999999int find_all_files(const char * lpPath){ char szFind[MAX_PATH]; WIN32_FIND_DATA FindFileData; strcpy(szFind,lpPath); strcat(szFind,"\\*.*"); cout<<szFind<<endl; HANDLE hFind=::FindFirstFile(szFind,&FindFileData); if(INVALID_HANDLE_VALUE == hFind) return -1; do { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if(strcmp(FindFileData.cFileName,".")!=0 && strcmp(FindFileData.cFileName, "..")!=0) { //发现子目录,递归之 char szFile[MAX_PATH] = {0}; strcpy(szFile,lpPath); strcat(szFile,"\\"); strcat(szFile,FindFileData.cFileName); find_all_files(szFile); } } else { //找到文件,处理之 cout << lpPath << "\\" << FindFileData.cFileName << endl; string temporaryName = FindFileData.cFileName; string oldName(lpPath); oldName += "\\"; oldName += temporaryName; string newName = oldName + ".png"; //cout<<"newName:"<<newName<<endl; //FindFileData.cFileName = temporaryName; if (rename(oldName.c_str(), newName.c_str()) == 0) //printf("Renamed %s to %s.\n", oldName, newName); cout<<oldName+"->"+newName+"\n"; else perror("rename"); //cout<<"new:"<<FindFileData.cFileName<<endl; } }while(::FindNextFile(hFind,&FindFileData)); ::FindClose(hFind); return 0;}int main(){ cout << "Hello world!" << endl; char *lpPath = "G:\\123"; find_all_files(lpPath); return 0;}
0 0
- python3 批量修改当前文件夹下 文件名
- C++批量修改文件夹下文件名
- java 批量修改文件夹下文件名
- 【C#】批量修改文件名
- Excel VBA批量修改文件夹下的文件名
- 批量修改某文件夹下文件名的方法
- C++下 文件夹内文件名提取、修改以及批量生成文件名
- C实现文件名批量修改
- LINUX下批量修改文件名
- linux下批量修改文件名
- Linux下批量修改文件名
- linux下批量修改文件名
- linux下批量修改文件名
- windows下批量修改文件名
- linux下批量修改文件名
- linux下批量修改文件名
- windows下批量修改文件名
- linux下批量修改文件名
- 关于android:launchMode=“singleInstance”
- Fragment的用法注意Google提供的范式(Fragment的正确传参方法)
- 一片不错的二叉树基础讲解
- avalon项目时遇到的问题后的注意点
- android 用shape绘制虚线添加到view当背景
- C++批量修改文件夹下文件名
- linux 下取进程占用 cpu/内存 最高的前10个进程
- 异步任务AsyncTask知识点
- 【C】星期判断与日历打印
- 机器学习笔记(一):matplotlib入门
- 以马尔科夫链的例来学习数学理论
- [Extjs6] Ext.data.Store Gridpanel默认选中一些记录
- Caffe中卷积层的实现
- ORA-00119和ORA-00132错误解决