Beispiel #1
0
/** \return Replica file name for given offset from lowest replica number. */
FileName File::RepName::RepFilename(int offset) const {
  FileName trajFilename;
  trajFilename.SetFileName_NoExpansion( Prefix_ + extChar_ +
                                        integerToString(lowestRepnum_ + offset, ExtWidth_) +
                                        CompressExt_ );
  return trajFilename;
}
Beispiel #2
0
// -----------------------------------------------------------------------------
File::NameArray File::ExpandToFilenames(std::string const& fnameArg) {
  NameArray fnames;
#ifdef _WIN32
  fnames.push_back( fnameArg );
#else
  if (fnameArg.empty()) return fnames;
  wordexp_t expanded;
  int err = wordexp( fnameArg.c_str(), &expanded, WRDE_NOCMD );
  WexpErr( err );
  if ( err == 0 ) {
    for (unsigned int i = 0; i != expanded.we_wordc; i++) {
      if (expanded.we_wordv[i] == 0)
        mprinterr("Internal Error: Bad expansion at %i\n", i);
      else {
        FileName fn;
        fn.SetFileName_NoExpansion( expanded.we_wordv[i] );
        fnames.push_back( fn );
      }
    }
    wordfree( &expanded );
  }
#endif /* _WIN32 */
  return fnames;
}
Beispiel #3
0
//TODO make this more efficient by just modifying full and base names
FileName FileName::PrependFileName( std::string const& prefix ) const {
  FileName out;
  out.SetFileName_NoExpansion(dirPrefix_ + prefix + baseName_);
  return out;
}