Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;-加载所有文件名+;计算当前目录中的文件数+;过滤器文件扩展名_C++_File_Macos_Directory_Filenames - Fatal编程技术网

C++ C++;-加载所有文件名+;计算当前目录中的文件数+;过滤器文件扩展名

C++ C++;-加载所有文件名+;计算当前目录中的文件数+;过滤器文件扩展名,c++,file,macos,directory,filenames,C++,File,Macos,Directory,Filenames,我想计算当前目录中的文件数,并加载数组中的所有文件名。如果可能的话,我想知道如何过滤文件扩展名。答案是,特别是。将下面的程序链接到-lboost\u文件系统 #include <iostream> #include <string> #include <vector> #include <boost/algorithm/string/case_conv.hpp> #include <boost/filesystem.hpp> int

我想计算当前目录中的文件数,并加载数组中的所有文件名。如果可能的话,我想知道如何过滤文件扩展名。答案是,特别是。

将下面的程序链接到
-lboost\u文件系统

#include <iostream>
#include <string>
#include <vector>

#include <boost/algorithm/string/case_conv.hpp>
#include <boost/filesystem.hpp>

int main( int argc, char ** argv )
{
  std::string ext = ".jpg";

  std::vector<std::string> files;

  for ( boost::filesystem::directory_iterator it( boost::filesystem::initial_path() );
        it != boost::filesystem::directory_iterator(); ++it )
  {
    if ( boost::filesystem::is_regular_file( it->status() ) &&
         boost::algorithm::to_lower_copy( it->path().extension() ) == ext )
    {
      files.push_back( it->path().filename() );
    }
  }

  std::cout << "Number of files: " << files.size() << std::endl;
  std::copy( files.begin(), files.end(), std::ostream_iterator<std::string>( std::cout, "\n" ) );

  return 0;
}
#包括
#包括
#包括
#包括
#包括
int main(int argc,字符**argv)
{
std::string ext=“.jpg”;
std::矢量文件;
对于(boost::filesystem::directory_iterator it(boost::filesystem::initial_path());
it!=boost::filesystem::directory_iterator();++it)
{
if(boost::filesystem::is_regular_文件(it->status())&&
boost::algorithm::to_lower_copy(it->path().extension())==ext)
{
向后推(it->path().filename());
}
}
我用dirent.h库解决了我的问题,但这是对boost.FileSystem.tyvm的一个很好的参考:)