boost.filesystemについて
boost::filesystemを使おうとしたら、外部参照エラーで躓いたのでその解決方法をメモ。
依存ライブラリ
boostjpのヘッダオンリー or ビルドが必要なライブラリに書かれているように、systemライブラリへの依存をしているので、そのリンクが必要(環境:VC2010 64bitWindows7)。
コード
で、書いたコードがこちら。
#include <iostream> #include <boost/filesystem/fstream.hpp> #include <boost/filesystem/operations.hpp> #include <boost/filesystem/path.hpp> #pragma comment( lib, "boost_system-vc100-mt-gd-1_47.lib" ) //これが必要 int main() { namespace fs = boost::filesystem; fs::directory_iterator end; for( fs::directory_iterator it( fs::current_path() ); it != end; ++it ) { if( fs::is_directory( *it ) ) std::cout << "Dir : "; else std::cout << "File: "; std::cout << it->path() << std::endl; } return 0; }
備考
出力として、カレントフォルダのファイルとフォルダ一覧が得られます。
尚、実行時には、boost_system-vc***-mt-**.DLLファイルが、プログラムから認識できる場所に必要です。
最近のboost::filesystemでは、leafが無いみたいですね。代わりにpathを使いました。
それでは。