本文整理汇总了C++中fs::path类的典型用法代码示例。如果您正苦于以下问题:C++ path类的具体用法?C++ path怎么用?C++ path使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了path类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UnzipLocalIndexFile
void QuarterlyIndexFileRetriever::UnzipLocalIndexFile (const fs::path& local_zip_file_name)
{
std::ifstream zipped_file(local_zip_file_name.string(), std::ios::in | std::ios::binary);
Poco::Zip::Decompress expander(zipped_file, local_zip_file_name.parent_path().string(), true);
expander.decompressAllFiles();
} // ----- end of method QuarterlyIndexFileRetriever::UnzipLocalIndexFile -----
示例2: dealStack
/*
* Deal the stacks into separated files and append them.
*/
void dealStack(const fs::path &outdir, const std::string &prefix,
const fs::path &imgPath,
const uint16_t nLayer) {
TIFF *in, *out;
static uint16_t iLayer = 0;
// Suppress the warnings.
TIFFErrorHandler oldhandler = TIFFSetWarningHandler(NULL);
// Open the file.
in = TIFFOpen(imgPath.string().c_str(), "r");
if (in == NULL) {
std::cerr << "Unable to read " << imgPath.filename() << std::endl;
return;
}
// Identify the read mode.
static char mode[3] = { 'x', 'b', 0 };
// Overwrite on the first run, and append for rest of the page.
mode[0] = (mode[0] == 'x') ? 'w' : 'a';
mode[1] = (TIFFIsBigEndian(in)) ? 'b' : 'l';
// Iterate through the directories.
int iFile = 0;
do {
std::string s = genPath(outdir, prefix, iFile);
out = TIFFOpen(s.c_str(), mode);
try {
if (out == NULL) {
throw -1;
} else if (!cpTiff(in, out, iLayer, nLayer)) {
throw -2;
}
} catch (int e) {
if (e == -1) {
std::cerr << "Unable to create output file" << std::endl;
} else if (e == -2) {
std::cerr << "Unable to copy the layer" << std::endl;
} else {
std::cerr << "Unknown error" << std::endl;
}
TIFFClose(in);
TIFFClose(out);
return;
}
TIFFClose(out);
iFile++;
} while (TIFFReadDirectory(in));
// Increment the layer variable for next write.
iLayer++;
TIFFClose(in);
// Restore the warning.
TIFFSetWarningHandler(oldhandler);
}
示例3: parse_document
static int
parse_document(
fs::path const& filein_
, fs::path const& fileout_
, fs::path const& deps_out_
, fs::path const& locations_out_
, fs::path const& xinclude_base_
, int indent
, int linewidth
, bool pretty_print)
{
string_stream buffer;
id_manager ids;
int result = 0;
try {
quickbook::state state(filein_, xinclude_base_, buffer, ids);
set_macros(state);
if (state.error_count == 0) {
state.add_dependency(filein_);
state.current_file = load(filein_); // Throws load_error
parse_file(state);
if(state.error_count) {
detail::outerr()
<< "Error count: " << state.error_count << ".\n";
}
}
result = state.error_count ? 1 : 0;
if (!deps_out_.empty())
{
fs::ofstream out(deps_out_);
BOOST_FOREACH(quickbook::state::dependency_list::value_type
const& d, state.dependencies)
{
if (d.second) {
out << detail::path_to_generic(d.first) << std::endl;
}
}
}
if (!locations_out_.empty())
{
fs::ofstream out(locations_out_);
BOOST_FOREACH(quickbook::state::dependency_list::value_type
const& d, state.dependencies)
{
out << (d.second ? "+ " : "- ")
<< detail::path_to_generic(d.first) << std::endl;
}
}
示例4: processModuleFile
// Functor operator, gets invoked on directory traversal
void ModuleLoader::processModuleFile(const fs::path& file)
{
// Check for the correct extension of the visited file
if (string::to_lower_copy(file.extension().string()) != MODULE_FILE_EXTENSION) return;
std::string fullName = file.string();
rConsole() << "ModuleLoader: Loading module '" << fullName << "'" << std::endl;
// Create the encapsulator class
DynamicLibraryPtr library = std::make_shared<DynamicLibrary>(fullName);
// greebo: Try to find our entry point and invoke it and add the library to the list
// on success. If the load fails, the shared pointer won't be added and
// self-destructs at the end of this scope.
if (library->failed())
{
rError() << "WARNING: Failed to load module " << library->getName() << ":" << std::endl;
#ifdef __linux__
rConsoleError() << dlerror() << std::endl;
#endif
return;
}
// Library was successfully loaded, lookup the symbol
DynamicLibrary::FunctionPointer funcPtr(
library->findSymbol(SYMBOL_REGISTER_MODULE)
);
if (funcPtr == nullptr)
{
// Symbol lookup error
rError() << "WARNING: Could not find symbol " << SYMBOL_REGISTER_MODULE
<< " in module " << library->getName() << ":" << std::endl;
return;
}
// Brute-force conversion of the pointer to the desired type
RegisterModulesFunc regFunc = reinterpret_cast<RegisterModulesFunc>(funcPtr);
try
{
// Call the symbol and pass a reference to the ModuleRegistry
// This method might throw a ModuleCompatibilityException in its
// module::performDefaultInitialisation() routine.
regFunc(ModuleRegistry::Instance());
// Add the library to the static list (for later reference)
_dynamicLibraryList.push_back(library);
}
catch (module::ModuleCompatibilityException&)
{
// Report this error and don't add the module to the _dynamicLibraryList
rError() << "Compatibility mismatch loading library " << library->getName() << std::endl;
}
}
示例5: remove_hjtremove
int remove_hjtremove(fs::path path, void* data)
{
if (strstr(path.string().c_str(),".hjtremove") ||
strstr(path.string().c_str(),".tmp")){
boost::system::error_code ec;
fs::remove(path, ec);
return ec.value();
}
return 0;
}
示例6: RenameOver
bool RenameOver(fs::path src, fs::path dest)
{
#ifdef WIN32
return MoveFileExA(src.string().c_str(), dest.string().c_str(),
MOVEFILE_REPLACE_EXISTING) != 0;
#else
int rc = std::rename(src.string().c_str(), dest.string().c_str());
return (rc == 0);
#endif /* WIN32 */
}
示例7: initASM_Gaze_Tracker
void ASM_Gaze_Tracker::initASM_Gaze_Tracker(const fs::path & trackermodel, const fs::path & cameraProfile) {
tracker = load_ft<face_tracker>(trackermodel.string());
tracker.detector.baseDir = trackermodel.parent_path().string() + fs::path("/").make_preferred().native();
if (cameraProfile.empty() == false) {
findBestFrontalFaceShapeIn3D();
readCameraProfile(cameraProfile, cameraMatrix, distCoeffs);
}
}
示例8: load
void GstVideoServer::load( const fs::path& path )
{
CI_LOG_I("Load file: " << path.string() );
GstPlayer::load(path.string());
mCurrentFileName = path.filename().string();
///> Now that we have loaded we can grab the pipeline..
mGstPipeline = GstPlayer::getPipeline();
setupNetworkClock();
}
示例9: file_error
boost::shared_ptr<file> file_pool::open_file(void* st, fs::path const& p, file::open_mode m)
{
assert(st != 0);
assert(p.is_complete());
assert(m == file::in || m == (file::in | file::out));
boost::mutex::scoped_lock l(m_mutex);
typedef nth_index<file_set, 0>::type path_view;
path_view& pt = get<0>(m_files);
path_view::iterator i = pt.find(p);
if (i != pt.end())
{
lru_file_entry e = *i;
e.last_use = time_now();
if (e.key != st)
{
// this means that another instance of the storage
// is using the exact same file.
throw file_error("torrent uses the same file as another torrent "
"(" + p.string() + ")");
}
e.key = st;
if ((e.mode & m) != m)
{
// close the file before we open it with
// the new read/write privilages
i->file_ptr.reset();
assert(e.file_ptr.unique());
e.file_ptr.reset();
e.file_ptr.reset(new file(p, m));
e.mode = m;
}
pt.replace(i, e);
return e.file_ptr;
}
// the file is not in our cache
if ((int)m_files.size() >= m_size)
{
// the file cache is at its maximum size, close
// the least recently used (lru) file from it
typedef nth_index<file_set, 1>::type lru_view;
lru_view& lt = get<1>(m_files);
lru_view::iterator i = lt.begin();
// the first entry in this view is the least recently used
assert(lt.size() == 1 || (i->last_use <= boost::next(i)->last_use));
lt.erase(i);
}
lru_file_entry e(boost::shared_ptr<file>(new file(p, m)));
e.mode = m;
e.key = st;
e.file_path = p;
pt.insert(e);
return e.file_ptr;
}
示例10: Next
bool MDeepFileIteratorImp::Next(
fs::path& outFile)
{
bool result = false;
while (not result and not mStack.empty())
{
struct dirent* e = nil;
MInfo& top = mStack.top();
if (top.mDIR != nil)
THROW_IF_POSIX_ERROR(::readdir_r(top.mDIR, &top.mEntry, &e));
if (e == nil)
{
if (top.mDIR != nil)
closedir(top.mDIR);
mStack.pop();
}
else
{
outFile = top.mParent / e->d_name;
struct stat st;
if (stat(outFile.string().c_str(), &st) < 0 or S_ISLNK(st.st_mode))
continue;
if (S_ISDIR(st.st_mode))
{
if (strcmp(e->d_name, ".") and strcmp(e->d_name, ".."))
{
MInfo info;
info.mParent = outFile;
info.mDIR = opendir(outFile.string().c_str());
memset(&info.mEntry, 0, sizeof(info.mEntry));
mStack.push(info);
}
continue;
}
if (mOnlyTEXT and not IsTEXT(outFile))
continue;
if (mFilter.length() and not FileNameMatches(mFilter.c_str(), outFile))
continue;
result = true;
}
}
return result;
}
示例11: MakeAbsolute
fs::path Path::MakeAbsolute(fs::path path, std::string const& token) const {
if (path.empty()) return path;
int idx = find_token(token.c_str(), token.size());
if (idx == -1) throw agi::InternalError("Bad token: " + token);
path.make_preferred();
const auto str = path.string();
if (boost::starts_with(str, "?dummy") || boost::starts_with(str, "dummy-audio:"))
return path;
return (paths[idx].empty() || path.is_absolute()) ? path : paths[idx]/path;
}
示例12:
shared_ptr<ISound> StarsApp::createSound( const fs::path &path )
{
shared_ptr<ISound> sound;
if(mSoundEngine && !path.empty()) {
// create sound in a very safe way
sound = shared_ptr<ISound>( mSoundEngine->play3D( path.string().c_str(), vec3df(0,0,0), false, true ), std::mem_fun(&ISound::drop) );
}
return sound;
}
示例13: GetFilePath
/*******************************************************************
* Function Name: GetFullImagePath
* Return Type : const fs::path
* Created On : Mar 8, 2014
* Created By : hrushi
* Comments : Returns the corresponding full image path for the given track image
* Arguments :
*******************************************************************/
const fs::path TrackXML::GetFullImagePath( UINT FrameNum ) const
{
const fs::path Parentfldr = GetFilePath().parent_path();
const string FldrName = Parentfldr.stem().string();
string ImgStemName = StringOp<UINT>::GetString(FrameNum, '0', 5);
fs::path FullImgPath = Parentfldr.string() + "/full/" + FldrName + "." + ImgStemName + ".jpeg";
return FullImgPath;
}
示例14: setReportLocation
bool CrashHandlerImpl::setReportLocation(const fs::path& location) {
Autolock autoLock(&m_Lock);
if(location.string().size() >= CrashInfo::MaxFilenameLen) {
LogError << "Report location path is too long.";
return false;
}
strcpy(m_pCrashInfo->crashReportFolder, location.string().c_str());
return true;
}
示例15: test_parent
static void test_parent(const fs::path & in, const std::string & out) {
fs::path p = in.parent();
arx_assert_msg(p.string() == out, "\"%s\".parent() -> \"%s\" != \"%s\"",
in.string().c_str(), p.string().c_str(), out.c_str());
fs::path temp = in;
temp.up();
arx_assert_msg(temp.string() == out, "\"%s\".up() ->\"%s\" != \"%s\"",
in.string().c_str(), temp.string().c_str(), out.c_str());
}