C++遍历文件夹下所有的wav文件(支持windows和Linux)
【摘要】
参考文章 直接上代码(这个方法使用Visual Studio 2017 进行调试的话,会报 “找不到 #include <dirent.h>” 的错误,尚未解决,还希望大佬赐教): windo...
参考文章
直接上代码(这个方法使用Visual Studio 2017 进行调试的话,会报 “找不到 #include <dirent.h>” 的错误,尚未解决,还希望大佬赐教):
windows 下的 Dev-C++ 以及 Linux 环境下 是可以正确运行的
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <string.h>
#include <dirent.h>
using namespace std;
// Find all files ext is wav
void getFileNames(string path,vector<string>& filenames)
{
DIR *pDir;
struct dirent* ptr;
if(!(pDir = opendir(path.c_str()))){
cout<<"Folder doesn't Exist!"<<endl;
return;
}
while((ptr = readdir(pDir))!=0) {
if(0 == strcmp(strchr(ptr->d_name, '.'), ".wav")){
filenames.push_back(path + "/" + ptr->d_name);
}
}
closedir(pDir);
}
void fileTest(){
int i = 0;
string path = "H:\\audio";
vector<string> files;
getFileNames(path, files);
int file_numbers = files.size();
for (i = 0; i < file_numbers; ++i) {
char file_path[100];
strcpy(file_path, files[i].c_str());
//strcpy_s( file_path, files[i].c_str());
printf("%-4d", i+1);
cout<<" "<< file_path <<endl;
}
}
int main()
{
fileTest();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
Windows 下 的 C++遍历文件夹下所有的wav文件,Visual Studio 2017 可以调试,Linux下不支持
//头文件肯定用不到这么多的,我只是懒
#include <iostream>
#include <fstream>
#include <string.h>
#include <string>
#include<stdlib.h>
#include <io.h>
#include <bitset>
#include <iomanip>
#include <cmath>
#include <vector>
#include <algorithm>
#include <chrono>
int multipleFileWindows()
{
int i = 0;
int index = 0;
string path = "H:\\noise";
//Find all file whose ext is .wav
string inPath = path + "\\*.wav";
long handle;
struct _finddata_t fileinfo;
handle = _findfirst(inPath.c_str(),&fileinfo);
if(handle == -1)
return -1;
do
{
++index;
} while (!_findnext(handle,&fileinfo));
// 存储文件路径到 files
vector<string> files(index);
handle = _findfirst(inPath.c_str(),&fileinfo);
i = 0;
string absolute_path = "";
if(handle == -1)
return -1;
do
{
absolute_path = path + "\\" + fileinfo.name;
files[i++] = absolute_path;
} while (!_findnext(handle,&fileinfo));
_findclose(handle);
return 1;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
文章来源: positive.blog.csdn.net,作者:墨理学AI,版权归原作者所有,如需转载,请联系作者。
原文链接:positive.blog.csdn.net/article/details/84136839
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)