gpt4 book ai didi

c++ - 如何使用 C++ 自动打开文件夹中的第一个文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:32:43 24 4
gpt4 key购买 nike

如何在不知道文件名的情况下从 C++ 应用程序自动打开给定目录中的文件并读取其内容?

例如(程序的粗略描述):

#include iomanip      
#include dirent.h
#include fstream
#include iostream
#include stdlib.h

using namespace std;

int main()
{
DIR* dir;
struct dirent* entry;
dir=opendir("C:\\Users\\Toshiba\\Desktop\\links\\");
printf("Directory contents: ");

for(int i=0; i<3; i++)
{

entry=readdir(dir);
printf("%s\n",entry->d_name);
}
return 0;
}

这将打印该目录中第一个文件的名称。我的问题是如何读取特定文件的内容并将其保存在 .txt 文档中。 ifstream 可以做到吗? (抱歉我的英语不好。)

最佳答案

应该这样做

#include <iostream>
#include <boost/filesystem/operations.hpp>
#include <boost/filesystem/fstream.hpp>
using namespace boost::filesystem;
using namespace std;

void show_files( const path & directory, bool recurse_into_subdirs = true )
{
if( exists( directory ) )
{
directory_iterator end ;
for( directory_iterator iter(directory) ; iter != end ; ++iter )
if ( is_directory( *iter ) )
{
cout << iter->native_directory_string() << " (directory)\n" ;
if( recurse_into_subdirs ) show_files(*iter) ;
}
else
cout << iter->native_file_string() << " (file)\n" ;
copyfiles(iter->native_file_string());
}
}

void copyfiles(string s)
{
ifstream inFile;

inFile.open(s);

if (!inFile.is_open())
{
cout << "Unable to open file";
exit(1); // terminate with error
}
//Display contents
string line = "";

//Getline to loop through all lines in file
while(getline(inFile,line))
{
cout<<line<<endl; // line buffers for every line
//here add your code to store this content in any file you want.
}

inFile.close();
}
int main()
{
show_files( "/usr/share/doc/bind9" ) ;
return 0;
}

关于c++ - 如何使用 C++ 自动打开文件夹中的第一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com