2016-12-19 7 views
0

シミュレータを使用してノード内の端末を開く際、現在のディレクトリ名で始まる親ディレクトリからファイルを読み込む必要があります。構造は以下の通りである:C++ディレクトリパスの取得、フォルダ名の解析、親ディレクトリからのファイル内容の出力

/path/to/directory/session#/node.conf 
         | 
         |_node.xy 

私はブーストライブラリを使用して現在のパス(だけでなく、親パス)/path/to/directory/session#/node.confを得ることができます。

std::string cwd = getcwd(NULL, 0); 
boost::filesystem::path p1(cwd); 
... p1.parent_path() 

私はブーストに慣れていないんだけど、私は、nodeを取得し、親ディレクトリに移動し、node.xyというファイルから読み込みを解析し、のみnode.confフォルダ名を取得したいと思います。

どのような方法が最適ですか?私はここで他の質問を探しましたが、私のために働くものは見つかりませんでした。

ありがとうございます。

答えて

0

ブーストファイルシステムにはさまざまなメソッドがあります。同じことをする方法はたくさんあります。常にドキュメントを手元に置いておいてください。必要になります。

Documentation Links

Reference Documentation

ので:

#include <iostream> 
#include <boost/filesystem.hpp> 

int main() 
{ 
    namespace bfs= boost::filesystem; 

    bfs::path p1("/path/to/directory/session#/node.conf"); 
    bfs::path target(p1.parent_path()/"_node.xy"); 
    std::cout << target << std::endl; 
    //or 
    bfs::path targ2(p1); 
    targ2.remove_filename(); 
    targ2/= "_node.xy"; 
    std::cout << targ2 << std::endl; 
    return 0; 
} 
関連する問題