当前位置: 首页>>代码示例>>C++>>正文


C++ path::native_file_string方法代码示例

本文整理汇总了C++中path::native_file_string方法的典型用法代码示例。如果您正苦于以下问题:C++ path::native_file_string方法的具体用法?C++ path::native_file_string怎么用?C++ path::native_file_string使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在path的用法示例。


在下文中一共展示了path::native_file_string方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: runtime_error

FeltFile::FeltFile(const path & file)
	: fileName_(file), changeEndianness_(false)
{
	if ( ! exists(file) )
		throw runtime_error("Cannot find file " + file.native_file_string() );
	if ( is_directory(file) )
		throw runtime_error(file.native_directory_string() + " is a directory, not a file");

	string fileName = file.native_file_string();
	feltFile_ = new boost::filesystem::ifstream(file);

	word head;
	feltFile_->read(reinterpret_cast<char*>(& head), sizeof(word));
	if ( head < 997 or 999 < head )
		changeEndianness_ = true;

	// Block 1
	block1_ = getBlock_(0);

	if ( not complete() )
		throw std::runtime_error("File update is not complete yet");

	const size_t fieldCount = block1_[9];
	fields_.reserve(fieldCount);
	int i = 0;
	while ( fields_.size() < fieldCount )
	{
		boost::shared_ptr<FeltField> f(new FeltField(*this, i ++));
		if ( f->valid() )
			fields_.push_back(f);
	}
}
开发者ID:metno,项目名称:wdb-feltpointload,代码行数:32,代码来源:FeltFile.cpp

示例2: basic_ofstream

 explicit basic_ofstream( const path & file_ph,
   std::ios_base::openmode mode = std::ios_base::out )
   : std::basic_ofstream<charT,traits>(
   file_ph.native_file_string().c_str(), mode ) {}
开发者ID:4eek,项目名称:xtractorfan,代码行数:4,代码来源:fstream.hpp

示例3: open

 void open( const path & file_ph,
   std::ios_base::openmode mode )
 {
   std::basic_ifstream<charT,traits>::open(
     file_ph.native_file_string().c_str(), mode );
 }
开发者ID:4eek,项目名称:xtractorfan,代码行数:6,代码来源:fstream.hpp

示例4: basic_ifstream

 explicit basic_ifstream( const path & file_ph )
   : std::basic_ifstream<charT,traits>(
   file_ph.native_file_string().c_str(), std::ios_base::in ) {}
开发者ID:4eek,项目名称:xtractorfan,代码行数:3,代码来源:fstream.hpp

示例5: drillDown

    void drillDown( path root, bool use_db = false ) {
        log(2) << "drillDown: " << root.string() << endl;

        if ( is_directory( root ) ) {
            directory_iterator end;
            directory_iterator i(root);
            while ( i != end ) {
                path p = *i;

                if (use_db) {
                    if (is_directory(p) ||
                        !(endsWith(p.string().c_str(), ".bson") ||
                          endsWith(p.string().c_str(), ".bin" ))) {
                        cerr << "ERROR: root directory must be a dump of a single database" << endl;
                        cerr << "       when specifying a db name with --db" << endl;
                        printHelp(cout);
                        return;
                    }
                }

                drillDown(p, use_db);
                i++;
            }
            return;
        }

        if ( ! ( endsWith( root.string().c_str() , ".bson" ) ||
                 endsWith( root.string().c_str() , ".bin" ) ) ) {
            cerr << "don't know what to do with [" << root.string() << "]" << endl;
            return;
        }

        out() << root.string() << endl;

        string ns;
        if (use_db) {
            ns += _db;
        } else {
            string dir = root.branch_path().string();
            if ( dir.find( "/" ) == string::npos )
                ns += dir;
            else
                ns += dir.substr( dir.find_last_of( "/" ) + 1 );
        }

        {
            string l = root.leaf();
            l = l.substr( 0 , l.find_last_of( "." ) );
            ns += "." + l;
        }

        long long fileLength = file_size( root );

        if ( fileLength == 0 ) {
            out() << "file " + root.native_file_string() + " empty, skipping" << endl;
            return;
        }

        out() << "\t going into namespace [" << ns << "]" << endl;

        string fileString = root.string();
        ifstream file( fileString.c_str() , ios_base::in | ios_base::binary);
        if ( ! file.is_open() ){
            log() << "error opening file: " << fileString << endl;
            return;
        }

        log(1) << "\t file size: " << fileLength << endl;

        long long read = 0;
        long long num = 0;

        int msgDelay = (int)(1000 * ( 1 + ( fileLength / ( 1024.0 * 1024 * 400 ) ) ) );
        log(1) << "\t msg delay: " << msgDelay << endl;

        const int BUF_SIZE = 1024 * 1024 * 5;
        char * buf = (char*)malloc( BUF_SIZE );

        while ( read < fileLength ) {
            file.read( buf , 4 );
            int size = ((int*)buf)[0];
            assert( size < BUF_SIZE );

            file.read( buf + 4 , size - 4 );

            BSONObj o( buf );
            conn().insert( ns.c_str() , o );

            read += o.objsize();
            num++;

            if ( ( logLevel > 0 && num < 10 ) || ! ( num % msgDelay ) )
                out() << "read " << read << "/" << fileLength << " bytes so far. (" << (int)( (read * 100) / fileLength) << "%) " << num << " objects" << endl;
        }

        free( buf );
        out() << "\t "  << num << " objects" << endl;
    }
开发者ID:jamesgolick,项目名称:mongo,代码行数:98,代码来源:restore.cpp


注:本文中的path::native_file_string方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。