版权声明:转载请注明出处 https://blog.csdn.net/k183000860/article/details/53319072
在微信朋友圈里面看到别人发的一个音乐相册,里面都是员工的party照,当时就想把这些照片给扒下来,鉴于音乐相册仍是用html制作的,那么素材应该都很容易获取了(暑假实习的时候经常做些扒网站素材的活),所以扒这些照片很多方法,这里就不介绍了,当时当我扒下来之后,发现都是不可读文件,后面尝试了下修改文件名后缀,能读取,既然这样的话,那把所有文件名都修改过来即可了,nonono,身为一名有洁癖的程序员,这种累活应该交给电脑干,所以当时就想着写一个脚本来做,因为暑假有用过php服务器来线上批量修改文件夹名(PHP脚本修改),想到这种方法比较麻烦,改用C++来做,以后便于修改。
#include <iostream>
#include <windows.h>
#include <stdio.h>
using namespace std;
#define MAX_PATH 999999
int 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;
}