您的位置:首页 > 其它

ubuntu--windows获取文件路径

2016-04-01 18:55 357 查看
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>

#if defined(WIN32) || defined(_WIN32)
#include <io.h>
#else
#include <dirent.h>
#endif

using namespace std;

static void readDirectory(const string& directoryName, vector<string>& filenames, bool addDirectoryName = true)
{
filenames.clear();

#if defined(WIN32) | defined(_WIN32)
struct _finddata_t s_file;
string str = directoryName + "\\*.*";

intptr_t h_file = _findfirst(str.c_str(), &s_file);
if (h_file != static_cast<intptr_t>(-1.0))
{
do
{
if (addDirectoryName)
filenames.push_back(directoryName + "\\" + s_file.name);
else
filenames.push_back((string)s_file.name);
} while (_findnext(h_file, &s_file) == 0);
}
_findclose(h_file);
#else
DIR* dir = opendir(directoryName.c_str());
if (dir != NULL)
{
struct dirent* dent;
while ((dent = readdir(dir)) != NULL)
{
if (addDirectoryName)
filenames.push_back(directoryName + "/" + string(dent->d_name));
else
filenames.push_back(string(dent->d_name));
}

closedir(dir);
}
#endif

sort(filenames.begin(), filenames.end());
}

int main(int argc, char* argv[])
{

vector<string> images_filenames;
readDirectory("./", images_filenames, false);

for (int i = 0; i < images_filenames.size(); i++){
cout << images_filenames[i] << endl;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: