獲取文件夾下的所有文件名

Windows下:

#include <windows.h>        //加入頭文件

void getDirFiles(const char* source,vector<string> &names)
{
        WIN32_FIND_DATA FindFileData;
        HANDLE hFind=FindFirstFile(source,&FindFileData);
        FindNextFile(hFind,&FindFileData);
        while(1)
        {
                FindNextFile(hFind,&FindFileData);
                string s=FindFileData.cFileName;
                if(names.size()&&names[names.size()-1]==s)
                {
                        break;
                }
                else
                {
                        names.push_back(s);
                } 

        }
}

Linux下:

#include<dirent.h>      //加入頭文件

 void getDirFiles(const char *source,vector<string> &files)
 {
         DIR *dir;
         struct dirent *dirent;
         string filename;
 
         if((dir=opendir(source)) == NULL)
         {
                 cout<<"can't open file!"<<endl;
                 return;
         }
         while((dirent = readdir(dir)) != NULL)
         {
 //              dirent->d_type爲4時,表示訪問子文件夾;爲8時表示訪問文件
                 if(dirent->d_type == 8 && strlen(dirent->d_name) > 2)
                 {
                         files.push_back(dirent->d_name);
 //                      cout<<dirent->d_name<<endl;
                 }
         }
  }

最簡便的是用Python:

import os

def getFileName(path):
	files=set([])
	for i in os.listdir(path):
		files.add(i)
	return files


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章