files = os.listdir('.') results = reversed(sorted(files)) for i in results: print i
服了 你用map<subDir, vector<string>>同一个subDir下面,就直接排序vetor<string>就行了 直接sort(begin(), end())然后就是map[subDir].at(0) 完事
[quote=引用 14 楼 iloveyou418 的回复:] [quote=引用 12 楼 yuhui654975515 的回复:] [quote=引用 1 楼 iloveyou418 的回复:] vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } void getFiles( string path, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { //如果是目录,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } 这样可以得到文件夹中的所有文件名称,然后你进行文件名判断就可以了, 头文件io.h
vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } void getFiles( string path, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { //如果是目录,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } }
[quote=引用 12 楼 yuhui654975515 的回复:] [quote=引用 1 楼 iloveyou418 的回复:] vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } void getFiles( string path, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { //如果是目录,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } 这样可以得到文件夹中的所有文件名称,然后你进行文件名判断就可以了, 头文件io.h
[quote=引用 11 楼 cfjtaishan 的回复:] 这个问题可以理解为若干个字符串中求最大字符串的问题。文件名作为字符串,通过字符串比较大小,得到最大字符串,最大字符串就是最新的文件名。
[quote=引用 1 楼 iloveyou418 的回复:] vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } void getFiles( string path, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { //如果是目录,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } 这样可以得到文件夹中的所有文件名称,然后你进行文件名判断就可以了, 头文件io.h
这个问题可以理解为若干个字符串中求最大字符串的问题。文件名作为字符串,通过字符串比较大小,得到最大字符串,最大字符串就是最新的文件名。
vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } void getFiles( string path, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { //如果是目录,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } 这样可以得到文件夹中的所有文件名称,然后你进行文件名判断就可以了, 头文件io.h
首先要获取文件夹下所有的文件名,这个需要借助操作系统提供的相应的API,存放在字符串数组或者string数组或者其他容器。 然后就是存粹的对字符串进行一些操作了。 很多实际应用都是对字符串进行一定的处理,所以处理字符串的各种方法要熟练掌握。 你的例子就是从字符串解析出年月日和_后的数字,比较年月日和_后面的数字即可。
[quote=引用 4 楼 yuhui654975515 的回复:] [quote=引用 3 楼 iloveyou418 的回复:] [quote=引用 2 楼 yuhui654975515 的回复:] [quote=引用 1 楼 iloveyou418 的回复:] vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } void getFiles( string path, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { //如果是目录,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } 这样可以得到文件夹中的所有文件名称,然后你进行文件名判断就可以了, 头文件io.h
[quote=引用 3 楼 iloveyou418 的回复:] [quote=引用 2 楼 yuhui654975515 的回复:] [quote=引用 1 楼 iloveyou418 的回复:] vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } void getFiles( string path, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { //如果是目录,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } 这样可以得到文件夹中的所有文件名称,然后你进行文件名判断就可以了, 头文件io.h
[quote=引用 2 楼 yuhui654975515 的回复:] [quote=引用 1 楼 iloveyou418 的回复:] vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<files[i].c_str()<<endl; } void getFiles( string path, vector<string>& files ) { //文件句柄 long hFile = 0; //文件信息 struct _finddata_t fileinfo; string p; if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) != -1) { do { //如果是目录,迭代之 //如果不是,加入列表 if((fileinfo.attrib & _A_SUBDIR)) { if(strcmp(fileinfo.name,".") != 0 && strcmp(fileinfo.name,"..") != 0) getFiles( p.assign(path).append("\\").append(fileinfo.name), files ); } else { files.push_back(p.assign(path).append("\\").append(fileinfo.name) ); } }while(_findnext(hFile, &fileinfo) == 0); _findclose(hFile); } } 这样可以得到文件夹中的所有文件名称,然后你进行文件名判断就可以了, 头文件io.h
64,675
社区成员
250,490
社区内容
加载中
试试用AI创作助手写篇文章吧